如果你使用 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是一种服务器端脚本语言,主要设计用于Web开发,同时也可作为通用编程语言使用。PHP代码可嵌入HTML中,或与多种模板引擎和Web框架配合使用,通常由Web服务器的原生模块或CGI解释器处理。
本镜像为https://hub.docker.com/_/php%E7%9A%84%60arm64v8%60%E6%9E%B6%E6%9E%84%E6%9E%84%E5%BB%BA%E7%89%88%E6%9C%AC%EF%BC%8C%E4%B8%93%E9%97%A8%E7%94%A8%E4%BA%8EARM64%E6%9E%B6%E6%9E%84%E7%8E%AF%E5%A2%83%E4%B8%ADPHP%E5%BA%94%E7%94%A8%E7%9A%84%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2%E3%80%82%E6%9B%B4%E5%A4%9A%E5%85%B3%E4%BA%8E%E5%A4%9A%E6%9E%B6%E6%9E%84%E9%95%9C%E5%83%8F%E7%9A%84%E4%BF%A1%E6%81%AF%EF%BC%8C%E8%AF%B7%E5%8F%82%E8%A7%81https://github.com/docker-library/official-images#architectures-other-than-amd64%E3%80%82
arm64v8架构cli、apache、fpm、alpine等变体,满足不同部署场景需求docker-php-ext-configure、docker-php-ext-install、docker-php-ext-enable等脚本,简化PHP扩展安装流程php.ini-development和php.ini-production默认配置文件,支持通过$PHP_INI_DIR/conf.d/目录自定义配置cli变体运行PHP脚本、后台任务或开发工具apache变体直接部署PHP Web应用,集成Apache服务器fpm变体配合Nginx等反向代理,适用于生产环境的高并发场景alpine变体适合对镜像体积和资源占用有严格要求的场景amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x(https://github.com/docker-library/official-images#architectures-other-than-amd64%EF%BC%89在PHP项目根目录创建Dockerfile:
dockerfileFROM arm64v8/php:8.2-cli COPY . /usr/src/myapp WORKDIR /usr/src/myapp CMD ["php", "./your-script.php"]
构建并运行镜像:
console$ docker build -t my-php-app . $ docker run -it --rm --name my-running-app my-php-app
对于简单的单文件项目,可直接使用镜像运行脚本,无需编写Dockerfile:
console$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp arm64v8/php:8.2-cli php your-script.php
检查已安装扩展
首先通过以下命令检查镜像中预安装的扩展,避免重复安装:
console$ docker run --rm arm64v8/php:8.2-cli php -m
扩展安装工具
镜像提供以下工具简化扩展管理:
docker-php-ext-configure:配置扩展编译选项docker-php-ext-install:编译安装PHP核心扩展并自动启用docker-php-ext-enable:手动启用已安装的扩展docker-php-source:提取PHP源代码(用于扩展编译,需在同一镜像层删除以减小体积)PHP核心扩展安装示例
以安装gd扩展(适用于FPM变体)为例:
dockerfileFROM arm64v8/php:8.2-fpm RUN apt-get update && apt-get install -y \ libfreetype-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd
注意:需手动安装扩展依赖的系统库。若需简化依赖管理,可参考社区工具https://github.com/mlocati/docker-php-extension-installer%E3%80%82
PECL扩展安装示例
通过pecl install安装PECL扩展,再用docker-php-ext-enable启用:
dockerfileFROM arm64v8/php:8.2-cli RUN pecl install redis-5.3.7 \ && pecl install xdebug-3.2.1 \ && docker-php-ext-enable redis xdebug
建议指定扩展版本以确保兼容性。PECL扩展需逐个安装(避免安装失败被忽略),但可一次性启用多个。
其他扩展(非核心/非PECL)安装示例
对于未包含在PHP核心或PECL中的扩展,可通过源码编译安装:
dockerfileFROM arm64v8/php:8.2-cli RUN curl -fsSL '[扩展源码URL]' -o module-name.tar.gz \ && mkdir -p /tmp/module-name \ && sha256sum -c "[校验值] module-name.tar.gz" \ && tar -xf module-name.tar.gz -C /tmp/module-name --strip-components=1 \ && rm module-name.tar.gz \ && docker-php-ext-configure /tmp/module-name --enable-module-name \ && docker-php-ext-install /tmp/module-name \ && rm -r /tmp/module-name
Apache变体
--sysctl net.ipv4.ip_unprivileged_port_start=0,然后使用--user指定用户--user指定用户FPM变体
直接通过docker run的--user参数指定用户(支持容器内用户名/组或UID/GID):
console$ docker run -it --rm --user 1000:1000 arm64v8/php:8.2-fpm
默认配置文件
镜像包含两套默认配置:
php.ini-development:开发环境配置(默认启用详细错误信息)php.ini-production:生产环境配置(默认禁用调试信息,启用性能优化)配置文件位于$PHP_INI_DIR(通常为/usr/local/etc/php)。
使用生产环境配置
dockerfileFROM arm64v8/php:8.2-fpm-alpine # 切换到生产环境配置 RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
自定义配置
通过将配置文件挂载或复制到$PHP_INI_DIR/conf.d/目录来自定义配置:
dockerfileFROM arm64v8/php:8.2-cli # 添加自定义配置 COPY custom.ini "$PHP_INI_DIR/conf.d/"
生产环境建议启用OPcache扩展提升性能,参考PHP官方OPcache文档。
arm64v8/php:<version>-cli用途:命令行脚本、工具或作为基础镜像
特点:
/usr/local/bin/php)php-cgi二进制文件(用于PPM等工具)arm64v8/php:<version>-apache用途:直接部署PHP Web应用
特点:
mod_phpmpm_prefork模块基础用法示例
Dockerfile部署:
dockerfileFROM arm64v8/php:7.2-apache COPY src/ /var/www/html/
构建并运行:
console$ docker build -t my-php-app . $ docker run -d -p 80:80 --name my-running-app my-php-app
直接运行(无Dockerfile):
console$ docker run -d -p 80:80 --name my-apache-php-app -v "$PWD":/var/www/html arm64v8/php:7.2-apache
自定义DocumentRoot
通过环境变量修改Apache的网站根目录:
dockerfileFROM arm64v8/php:7.1-apache ENV APACHE_DOCUMENT_ROOT /path/to/new/root RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
arm64v8/php:<version>-fpm用途:配合反向代理(如Nginx)的生产环境部署
特点:
安全警告:FastCGI协议不加密,禁止将FPM端口直接暴露到公网,仅在私有容器网络中使用。
arm64v8/php:<version>-alpine用途:资源受限环境或对镜像体积有严格要求的场景
特点:
git、bash),需手动安装此镜像默认阻止安装Debian的PHP包(避免冲突的PHP安装)。正确解决方法是使用docker-php-ext-install、pecl或phpize安装扩展,而非通过apt-get install php-XXX。
临时解决方法(不推荐,可能导致冲突):
dockerfileRUN rm /etc/apt/preferences.d/no-debian-php
镜像中PHP软件的许可证信息参见PHP官方许可证页面。
镜像可能包含其他软件(如基础镜像中的Bash等),其许可证需由用户自行确认合规性。更多自动检测的许可证信息可参见https://github.com/docker-library/repo-info/tree/master/repos/php%E3%80%82
作为预构建镜像的使用者,您有责任确保对镜像的使用符合所有包含软件的相关许可证。
以下是 arm64v8/php 相关的常用 Docker 镜像,适用于 Web 开发、内容管理、传统应用 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

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