
sigblue/apache-phpGitHub 项目
DockerHub 镜像
开发者:Marco Chiodo
Docker Apache PHP 镜像扩展自官方 php:*-apache 镜像,预安装了大多数常用PHP扩展,并提供 light、standard、full 三个版本以满足不同需求。该镜像简化了PHP Web应用的部署流程,内置优化的Apache配置,支持环境变量自定义端口,默认适配现代PHP框架的URL重写需求。
提供三个预配置版本,适配不同扩展需求:
light:基础版本,包含核心扩展standard:标准版本,包含更多常用扩展full:完整版本,包含几乎所有主流扩展镜像已预装多数常用PHP扩展,以下扩展需通过 docker-php-ext-enable 命令或 php.ini 文件手动启用:
iniextension=grpc.so extension=imagick.so extension=memcached.so extension=mongodb.so extension=protobuf.so extension=redis.so
/etc/apache2/ports.conf 中的端口 80 替换为 ${PORT} 环境变量值,支持动态指定端口apache<VirtualHost *:${PORT}> DocumentRoot /var/www/html/public RewriteEngine On # 保留Authorization头信息 RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] # 前端路由重写规则 <Directory /var/www/html/public > RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$ RewriteRule ^(.*) - [E=BASE:%1] RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L] </Directory> # 目录权限配置 <Directory /var/www/html > Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> LogLevel notice ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
拉取镜像时通过标签指定版本,默认标签为 latest(对应 standard 版本):
bash# light版本 docker pull sigblue/apache-php:latest-light # standard版本(默认) docker pull sigblue/apache-php:latest-standard # full版本 docker pull sigblue/apache-php:latest-full
部分扩展需手动启用,可通过以下两种方式:
docker-php-ext-enabledockerfileFROM sigblue/apache-php:latest-standard RUN docker-php-ext-enable redis mongodb
php.ini文件在项目根目录创建 php.ini,添加扩展启用配置,并挂载到容器 /var/www/html 目录:
ini; php.ini extension=redis.so extension=mongodb.so
PORT:指定Apache监听端口(默认替换配置文件中的80端口),如 -e PORT=8080bashdocker run -d \ -p 8080:8080 \ -e PORT=8080 \ -v $(pwd):/var/www/html \ sigblue/apache-php:latest-standard
yaml# docker-compose.yml version: '3' services: php-app: image: sigblue/apache-php:latest-standard ports: - "8080:8080" environment: - PORT=8080 volumes: - ./:/var/www/html - ./php.ini:/var/www/html/php.ini # 自定义php.ini restart: always
/var/www/html 目录,框架项目的入口文件应放在 /var/www/html/public(默认DocumentRoot)/etc/apache2/sites-available/000-default.conf 覆盖默认配置



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