
digiticketsgroup/phpPHP Docker镜像是由PHP官方维护的Docker镜像,包含完整的PHP运行时环境,支持多种PHP版本(如7.4、8.0、8.1、8.2、8.3等),基于不同基础镜像(轻量级Alpine或功能全面的Debian)构建。该镜像旨在为开发者和运维人员提供快速、一致的PHP应用部署环境,无需手动配置PHP依赖和系统环境,可直接用于运行PHP脚本、网站或API服务。
7.4、8.0、8.1、8.2、8.3等,满足不同应用对PHP版本的需求。php:8.3(默认Debian基础)、php:8.3-alpine(Alpine基础)、php:8.3-cli(仅CLI环境)、php:8.3-fpm(包含PHP-FPM)。json、mbstring、openssl、pdo等),可通过docker-php-ext-install命令安装额外扩展(如mysqli、gd、redis等)。php.ini文件覆盖默认配置,或通过环境变量调整PHP设置(如PHP_MEMORY_LIMIT、PHP_MAX_EXECUTION_TIME等)。使用php:<version>-cli镜像运行本地PHP脚本:
bash# 假设当前目录有script.php文件 docker run --rm -v $(pwd):/app php:8.3-cli php /app/script.php
--rm:容器退出后自动删除-v $(pwd):/app:将本地当前目录挂载到容器内的/app目录php /app/script.php:在容器内执行script.php脚本使用Docker Compose部署PHP-FPM+Nginx环境:
docker-compose.yml
yamlversion: '3' services: php-fpm: image: php:8.3-fpm volumes: - ./php-app:/var/www/html # 挂载PHP应用代码 restart: always nginx: image: nginx:alpine ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf # Nginx配置 - ./php-app:/var/www/html # 共享PHP代码目录 depends_on: - php-fpm restart: always
nginx.conf(Nginx配置示例)
nginxserver { listen 80; server_name localhost; root /var/www/html; index index.php index.html; location ~ \.php$ { fastcgi_pass php-fpm:9000; # 连接php-fpm服务(容器名:端口) fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
启动服务:
bashdocker-compose up -d
访问http://localhost即可看到PHP应用页面。
创建自定义php.ini文件(如./php.ini),并挂载到容器的PHP配置目录:
bashdocker run --rm -v $(pwd):/app -v $(pwd)/php.ini:/usr/local/etc/php/php.ini php:8.3-cli php /app/script.php
/usr/local/etc/php/php.ini/usr/local/etc/php/php.ini(同Debian)使用docker-php-ext-install命令在Dockerfile中安装扩展:
Dockerfile
dockerfileFROM php:8.3-fpm # 安装mysqli和gd扩展 RUN docker-php-ext-install mysqli gd # 安装Redis扩展(通过PECL) RUN pecl install redis && docker-php-ext-enable redis
构建并使用自定义镜像:
bashdocker build -t my-php-app . docker run --rm my-php-app
| 环境变量/配置项 | 说明 | 默认值 |
|---|---|---|
PHP_INI_DIR | PHP配置文件目录路径 | /usr/local/etc/php |
PHP_MEMORY_LIMIT | PHP内存限制 | 128M |
PHP_MAX_EXECUTION_TIME | PHP脚本最大执行时间(秒) | 30 |
PHP_POST_MAX_SIZE | POST数据最大尺寸 | 8M |
PHP_UPLOAD_MAX_FILESIZE | 上传文件最大尺寸 | 2M |
可通过在php.ini中修改或在Dockerfile中使用sed命令调整默认配置:
dockerfileFROM php:8.3-fpm RUN sed -i 's/^memory_limit = .*/memory_limit = 256M/' /usr/local/etc/php/php.ini-production
php:<version>-fpm(而非cli)配合Web服务器,或使用官方提供的-apache标签镜像(如php:8.3-apache,内置Apache+PHP)。gd扩展需要libpng、libjpeg等库)。latest标签(建议指定具体版本如8.3.4)。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务