本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

开箱即用、多版本、功能全面的PHP-FPM Docker镜像,支持所有PHP项目(如WordPress和Laravel)。镜像并非轻量级,旨在开箱即支持尽可能多的功能,并可通过环境设置轻松开启/关闭。
PHP-FPM(FastCGI Process Manager)是PHP的替代FastCGI实现。
使用以下环境变量在容器启动时配置PHP进程管理器:
PHP_UID=1000 PHP_GID=1000 PHP_HOME=/app PHP_USER=php-fpm
将创建名为php-fpm的系统用户,UID:GID为1000:1000,主目录为/app,可在php-fpm池配置文件中引用。
PHP_INI_PATH=/path/to/php.ini
在php-fpm启动时包含指定的php.ini配置。支持通配符,可包含多个.ini配置文件。
PHP_POOL_PATH=/path/to/pool.conf
在php-fpm启动时包含指定的pool.conf配置。支持通配符,可包含多个.conf配置文件。
注意:默认会加载[***]池配置,除非指定自定义的[***]路径。
PHP_BOOT_SCRIPTS=/path/to/*.sh
在容器启动时、php-fpm启动前运行指定路径下的脚本(单个或多个)。适用于需要创建多个系统用户(如共享主机环境)的场景,可通过脚本预先创建用户。
PHP_CRONTABS_PATH=/path/to/cronttab_scripts
安装指定路径下的定时任务配置并启动crontab守护进程。
Laravel定时任务示例
# # Laravel任务调度器 # # 注意: # crontab的sh shell需要: # - php cli解释器的完整路径 # - 切换到laravel artisan所在目录 # - 文件末尾需留空行以保证cron文件有效 * * * * * php-cli cd /app && /usr/local/bin/php artisan schedule:run
NEWRELIC_LICENSE=license_string
启用NewRelic扩展以监控PHP应用性能。
从7.3版本开始,SendGrid不再支持用户名/密码认证,改用API密钥。
已弃用:
SMTP_LOGIN=sendgrid_login SMTP_PASSWORD=sendgrid_password
推荐使用API密钥:
SENDGRID_API_KEY=api_key_string
通过SendGrid配置默认邮件路由。适用于Google Cloud等默认阻止25端口SMTP的环境。
TEST_EMAIL=***
设置后,容器启动时会通过PHP mail函数向指定地址发送测试邮件。
支持Redis或Memcached作为PHP会话处理器。
PHP_SESSION_HANDLER=php_session_handler PHP_SESSION_PATH=php_session_path
修改默认PHP会话处理器,适用于集群环境中实现会话共享。
Redis会话示例
PHP_SESSION_HANDLER=redis PHP_SESSION_PATH=tcp://redis.host:6379
将php.ini全局会话处理器设置为Redis,连接redis.host:6379。
Memcached会话示例
PHP_SESSION_HANDLER=memcached PHP_SESSION_PATH=memcached.host:11211
将php.ini全局会话处理器设置为Memcached,连接memcached.host:11211。
SUPERVISORD_PATH=/path/to/supervisord.conf
自定义Supervisord配置以控制和监控容器内多个进程。示例配置可确保容器启动后不退出并将日志重定向到stdout:
command: [ "tail", '-f', '/var/log/supervisor/supervisord.log' ] healthcheck: test: /healthcheck retries: 3 timeout: 5s interval: 5s
docker pull crunchgeek/php-fpm:7.2
运行PHP-FPM镜像并挂载主机目录:
docker run -it --name php-fpm -v /path/to/your/app:/app crunchgeek/php-fpm:7.2 php script.php
或使用Docker Compose:
version: '3' services: php-fpm: container_name: php-fpm image: crunchgeek/php-fpm:7.3 entrypoint: php index.php volumes: - /path/to/your/app:/app
docker run --rm --name php-fpm -v /path/to/your/app:/app -p 8000:8000 crunchgeek/php-fpm:7.2 php -S 0.0.0.0:8000 /app/index.php
docker logs php-fpm
docker run --rm -it crunchgeek/php-fpm:7.2 php -m
从7.3升级到7.4时无法构建的扩展:
docker-php-ext-configure gd --with-png仅支持PNG(详情参见docker-library/php#912)
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429