ossobv/uwsgi-phpossobv/uwsgi-php 是一个基于 uWSGI 和 PHP 的运行环境镜像,用于部署 PHP 应用程序。该镜像通过不同标签支持 PHP 5.x 和 7.x 版本,提供灵活的 uWSGI 配置能力,可自定义端口绑定、权限管理、静态文件处理及 PHP 环境参数。
| 标签 | 说明 | Dockerfile 链接 |
|---|---|---|
7, 7.2, latest | PHP 7.x 版本(默认) | uwsgi-php/Dockerfile |
5, 5.5 | PHP 5.x 版本 | uwsgi-php/Dockerfile |
www-data 用户/组运行应用,支持权限降级,提升安全性。适用于需要自定义 uWSGI 配置的 PHP 应用部署,包括但不限于:
通过以下 Dockerfile 可基于该镜像构建自定义 PHP 应用镜像:
dockerfileFROM ossobv/uwsgi-php # 安装构建依赖(按需添加,完成后自动清理) RUN buildDeps=' \ # 在此添加构建依赖,例如:gcc libc6-dev \ ' \ && apt-get update \ && apt-get install -y \ $buildDeps \ --no-install-recommends \ && rm -rf /var/lib/apt/lists/* \ && apt-get purge --auto-remove $buildDeps # 设置工作目录 WORKDIR /app # 暴露应用端口(需与 uwsgi.ini 中配置的端口一致) EXPOSE 8080
默认 CMD 依赖 /etc/uwsgi/uwsgi.ini 配置文件,需手动提供。以下是典型配置示例及说明:
ini[uwsgi] ; 加载必要插件,默认加载 PHP 插件(作为 0 号修饰符) plugins = http,0:php ; 绑定 HTTP 路由至端口(默认使用环境变量 LISTEN,未设置时需指定具体端口) http = :$(LISTEN) ; 保持 master 进程以 root 身份运行(允许绑定 80 等特权端口) master = true master-as-root = true ; 权限降级:运行应用的用户/组 uid = www-data gid = www-data ; 应用目录配置 project_dir = /code ; 应用根目录 chdir = %(project_dir) ; 切换至应用目录 check-static = %(project_dir) ; 检查静态文件 static-skip-ext = .php ; 跳过 .php 扩展名的静态文件检查 static-skip-ext = .inc ; 跳过 .inc 扩展名的静态文件检查 static-index = index.html ; 目录请求时查找 index.html ; PHP 环境配置 php-docroot = %(project_dir) ; PHP 文档根目录 php-allowed-ext = .php ; 允许解析的 PHP 扩展名 php-allowed-ext = .inc ; 允许解析的 PHP 扩展名 php-index = index.php ; 目录请求时查找 index.php php-index = index.inc ; 目录请求时查找 index.inc php-set = date.timezone=Europe/Amsterdam ; 设置 PHP 时区 php-set = upload_max_filesize = 5M ; 设置上传文件大小限制 php-set = post_max_size = 5M ; 设置 POST 数据大小限制 php-sapi-name = apache ; 模拟 Apache SAPI 环境(解决部分框架兼容性问题) ; 进程管理 processes = 17 ; 最大进程数 cheaper = 2 ; 初始进程数(按需动态扩容)
| 配置项 | 作用 |
|---|---|
plugins = http,0:php | 加载 HTTP 路由插件和 PHP 插件(0:php 表示将 PHP 作为默认修饰符) |
http = :$(LISTEN) | 绑定 HTTP 服务端口,LISTEN 为环境变量(默认建议设为 8080) |
master-as-root = true | 允许 master 进程以 root 身份运行(用于绑定特权端口,如 80) |
uid/gid = www-data | 应用进程以 www-data 用户/组运行(降低权限,提升安全性) |
check-static | 启用静态文件检查,优先返回静态文件(如 .html、.css 等) |
php-set | 自定义 PHP 配置参数(如时区、上传限制等) |
processes/cheaper | 控制进程数量(最大进程数/初始进程数),优化资源占用 |
LISTEN:指定 uWSGI 服务监听端口,需与 uwsgi.ini 中 http = :$(LISTEN) 配合使用,默认建议设置为 8080(需与 EXPOSE 指令一致)。/etc/uwsgi/uwsgi.ini,需确保镜像构建时或运行时该文件存在。master-as-root = true 仅用于 master 进程绑定端口,应用进程通过 uid/gid 降级为非 root 用户,避免安全风险。static-skip-ext 配置确保 .php/.inc 文件不会被当作静态文件返回,需根据应用需求调整允许的扩展名。ossobv/uwsgi-php:5 对应 PHP 5.x,:7 对应 PHP 7.x)。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务