
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
PHP-FPM(FastCGI Process Manager)Docker镜像提供基于PHP FastCGI进程管理器的运行环境,用于处理PHP应用的FastCGI请求。该镜像封装了PHP运行时和FPM进程管理组件,可与Nginx、Apache等支持FastCGI的Web服务器配合工作,实现PHP应用的高效部署与运行,支持开发环境测试和生产环境部署。
docker-php-ext-install命令安装额外扩展。1. 拉取镜像
从Docker Hub拉取指定PHP版本的PHP-FPM镜像(以PHP 8.1为例):
bashdocker pull php:8.1-fpm
2. 启动容器
基本运行命令,挂载PHP应用代码目录:
bashdocker run -d \ --name php-fpm-app \ -v /本地/php应用目录:/var/www/html \ php:8.1-fpm
docker-compose配置
通过docker-compose实现Nginx+PHP-FPM联动部署,示例配置如下:
yamlversion: '3.8' services: nginx: image: nginx:alpine ports: - "80:80" volumes: - /本地/php应用目录:/var/www/html - ./nginx/conf.d:/etc/nginx/conf.d # 挂载Nginx配置 depends_on: - php-fpm restart: unless-stopped php-fpm: image: php:8.1-fpm volumes: - /本地/php应用目录:/var/www/html # 挂载PHP应用代码 environment: - PHP_INI_MEMORY_LIMIT=256M # PHP内存限制 - PHP_FPM_PM_MAX_CHILDREN=15 # FPM最大子进程数 restart: unless-stopped
Nginx配置示例
创建./nginx/conf.d/default.conf文件,配置Nginx转发PHP请求至PHP-FPM:
nginxserver { listen 80; server_name localhost; root /var/www/html; # 与PHP-FPM容器内应用目录一致 index index.php index.html; # 处理PHP请求 location ~ \.php$ { fastcgi_pass php-fpm:9000; # 指向php-fpm服务容器 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # 处理静态资源 location / { try_files $uri $uri/ /index.php?$query_string; } }
启动服务:
bashdocker-compose up -d
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| PHP_INI_MEMORY_LIMIT | PHP内存限制(对应php.ini的memory_limit) | 128M |
| PHP_INI_UPLOAD_MAX_FILESIZE | 上传文件大小限制(upload_max_filesize) | 2M |
| PHP_INI_POST_MAX_SIZE | POST数据最大大小(post_max_size) | 8M |
| PHP_FPM_PM | 进程管理模式(dynamic/static/ondemand) | dynamic |
| PHP_FPM_PM_MAX_CHILDREN | 最大子进程数(pm.max_children) | 5 |
| PHP_FPM_PM_START_SERVERS | 启动时进程数(dynamic模式,pm.start_servers) | 2 |
| PHP_FPM_PM_MIN_SPARE_SERVERS | 最小空闲进程数(dynamic模式,pm.min_spare_servers) | 1 |
| PHP_FPM_PM_MAX_SPARE_SERVERS | 最大空闲进程数(dynamic模式,pm.max_spare_servers) | 3 |
环境变量使用示例
bashdocker run -d \ --name php-fpm-app \ -v /本地/php应用目录:/var/www/html \ -e PHP_INI_MEMORY_LIMIT=512M \ -e PHP_FPM_PM=static \ -e PHP_FPM_PM_MAX_CHILDREN=20 \ php:8.1-fpm
通过Dockerfile自定义扩展
如需安装额外PHP扩展,可基于官方镜像构建自定义镜像,示例Dockerfile(安装mysqli和gd扩展):
dockerfileFROM php:8.1-fpm # 安装依赖包(根据扩展需求调整) RUN apt-get update && apt-get install -y \ libpng-dev \ libjpeg-dev \ && rm -rf /var/lib/apt/lists/* # 配置并安装扩展 RUN docker-php-ext-configure gd --with-jpeg \ && docker-php-ext-install mysqli gd
构建并运行:
bashdocker build -t my-php-fpm . docker run -d --name my-php-app -v /本地/php应用目录:/var/www/html my-php-fpm
如需自定义PHP或FPM配置,可挂载本地配置文件至容器对应路径:
| 配置类型 | 容器内默认路径 | 用途 |
|---|---|---|
| PHP配置 | /usr/local/etc/php/php.ini | PHP全局配置(php.ini) |
| PHP-FPM主配置 | /usr/local/etc/php-fpm.conf | FPM主配置文件 |
| FPM池配置 | /usr/local/etc/php-fpm.d/www.conf | 默认FPM池(www)配置 |
挂载示例
bashdocker run -d \ --name php-fpm-app \ -v /本地/php应用目录:/var/www/html \ -v /本地/custom/php.ini:/usr/local/etc/php/php.ini \ -v /本地/custom/www.conf:/usr/local/etc/php-fpm.d/www.conf \ php:8.1-fpm
PHP-FPM日志默认输出至标准输出(STDOUT),可通过Docker日志驱动(如json-file、journald)收集。如需自定义日志路径,可修改FPM池配置文件(如www.conf)中的日志参数:
ini; 错误日志路径 error_log = /var/log/php-fpm/error.log ; 访问日志路径(需启用) access.log = /var/log/php-fpm/access.log
挂载日志目录并启动:
bashdocker run -d \ --name php-fpm-app \ -v /本地/php应用目录:/var/www/html \ -v /本地/logs:/var/log/php-fpm \ php:8.1-fpm
以下是 compucorp/php-fpm 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务