
joseluisq/php-fpmAlpine PHP-FPM是基于最新Alpine Linux构建的轻量级优化多架构Docker镜像,支持PHP-FPM(PHP 8.0、8.1、8.2版本),包含丰富的必要扩展。该镜像支持x86_64、arm、arm64架构,旨在提供高性能、低资源消耗的PHP运行环境。
| v8.0 | v8.1 | v8.2 |
|---|---|---|
| !Docker Image Version (tag latest semver) !Docker Image Size (tag) | !Docker Image Version (tag latest semver) !Docker Image Size (tag) | !Docker Image Version (tag latest semver) !Docker Image Size (tag) |
curl, ftp, hash (mhash), libedit, libsodium, mbstring, mysqlnd, openssl, password-argon2, pdo-sqlite, pear, sqlite3, zlib
| 扩展 | v8.0 | v8.1 | v8.2 |
|---|---|---|---|
| amqp | ✓ | ✓ | ✓ |
| apcu | ✓ | ✓ | ✓ |
| bcmath | ✓ | ✓ | ✓ |
| bz2 | ✓ | ✓ | ✓ |
| exif | ✓ | ✓ | ✓ |
| gd | ✓ | ✓ | ✓ |
| gettext | ✓ | ✓ | ✓ |
| gmp | ✓ | ✓ | ✓ |
| imagick | ✓ | ✓ | ✓ |
| imap | ✓ | ✓ | ✓ |
| intl | ✓ | ✓ | ✓ |
| mcrypt | ✓ | ? | ? |
| memcache | ✓ | ✓ | ✓ |
| mongodb | ✓ | ✓ | ✓ |
| mysqli | ✓ | ✓ | ✓ |
| oauth | ✓ | ✓ | ✓ |
| opcache | ✓ | ✓ | ✓ |
| pcntl | ✓ | ✓ | ✓ |
| pdo_dblib | ✓ | ✓ | ✓ |
| pdo_mysql | ✓ | ✓ | ✓ |
| pdo_pgsql | ✓ | ✓ | ✓ |
| pdo_sqlsrv | ✓ (仅64位) | ✓ (仅64位) | ✓ (仅64位) |
| pgsql | ✓ | ✓ | ✓ |
| phalcon | ? | ✓ | ✓ |
| psr | ✓ | ✓ | ✓ |
| redis | ✓ | ✓ | ✓ |
| rdkafka | ✓ | ✓ | ✓ |
| soap | ✓ | ✓ | ✓ |
| sockets | ✓ | ✓ | ✓ |
| sqlsrv | ✓ (仅64位) | ✓ (仅64位) | ✓ (仅64位) |
| ssh2 | ✓ | ✓ | ✓ |
| swoole | ✓ | ✓ | ✓ |
| sysvmsg | ✓ | ✓ | ✓ |
| sysvsem | ✓ | ✓ | ✓ |
| sysvshm | ✓ | ✓ | ✓ |
| tidy | ✓ | ✓ | ✓ |
| vips | ✓ | ✓ | ✓ |
| xsl | ✓ | ✓ | ✓ |
| yaml | ✓ | ✓ | ✓ |
| zip | ✓ | ✓ | ✓ |
| 其他 | |||
| composer | v2.5 | v2.5 | v2.5 |
脚注:(?) 表示该扩展已过时/未维护/不推荐使用,或暂不支持。
适用于需要轻量级、高性能PHP-FPM环境的Web应用开发与部署,如基于Laravel、Symfony、WordPress等PHP框架的应用。支持多架构部署,适合在x86_64、arm、arm64等不同硬件平台运行,尤其适合对镜像大小和资源占用有严格要求的场景。
从Docker Hub拉取不同PHP版本的镜像:
shdocker pull joseluisq/php-fpm:8.0 # 或 docker pull joseluisq/php-fpm:8.1 # 或 docker pull joseluisq/php-fpm:8.2
在Dockerfile中引用该镜像:
DockerfileFROM joseluisq/php-fpm:8.0 # 或 FROM joseluisq/php-fpm:8.1 # 或 FROM joseluisq/php-fpm:8.2
快速启动测试容器,访问localhost:8088查看PHP信息:
shdocker run --rm -p 8088:80 joseluisq/php-fpm:8.2 sh -c "echo '<?php phpinfo();' > index.php; php -S [::]:80 -t ." # 或 docker run --rm -p 8088:80 joseluisq/php-fpm:8.1 sh -c "echo '<?php phpinfo();' > index.php; php -S [::]:80 -t ." # 或 docker run --rm -p 8088:80 joseluisq/php-fpm:8.0 sh -c "echo '<?php phpinfo();' > index.php; php -S [::]:80 -t ."
提供Nginx和Apache服务器的Docker Compose配置示例,位于GitHub仓库的examples目录。
shdocker-compose -f examples/nginx/docker-compose.yml up
shdocker-compose -f examples/apache/docker-compose.yml up
/var/www/html/usr/local/etc/php/conf.dENV_SUBSTITUTION_ENABLE=true时生成):/usr/local/etc/php/conf.d/default-php.ini通过环境变量可覆盖PHP-FPM和PHP配置,需设置ENV_SUBSTITUTION_ENABLE=true(默认禁用)启用替换功能。
全局FPM设置
替换/usr/local/etc/php-fpm.conf文件中的配置:
PHP_FPM_ERROR_LOG=/proc/self/fd/2:错误日志路径PHP_FPM_LOG_LEVEL=error:日志级别FPM WWW池设置
替换/usr/local/etc/php-fpm.d/[***]文件中的配置:
PHP_FPM_LISTEN=9000:监听端口PHP_FPM_USER=www-data:运行用户PHP_FPM_GROUP=www-data:运行组PHP_FPM_LISTEN_OWNER=www-data:监听套接字所有者PHP_FPM_LISTEN_GROUP=www-data:监听套接字组替换/usr/local/etc/php/conf.d/default-php.ini文件(php.ini)中的配置:
PHP_MEMORY_LIMIT=512M:内存限制PHP_EXPOSE_PHP=On:是否暴露PHP版本信息PHP_SESSION_GC_MAXLIFETIME=1440:会话垃圾回收最大生命周期(秒)欢迎提交拉取请求或反馈问题。
本项目主要采用MIT许可和Apache许可(版本2.0)进行分发。
© 2020-present Jose Quintana



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