专属域名
轩辕助手
文档搜索
提交工单
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
...
amd64/php
官方博客热门镜像提交工单
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 —— 国内开发者首选的专业 Docker 镜像加速平台。在线技术支持请优先 提交工单,技术交流欢迎加入官方QQ群:13763429 。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

php Docker 镜像下载 - 轩辕镜像

php 镜像详细信息和使用指南

php 镜像标签列表和版本信息

php 镜像拉取命令和加速下载

php 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

php
amd64/php

php 镜像详细信息

php 镜像标签列表

php 镜像使用说明

php 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

PHP脚本语言镜像,虽主要设计用于Web开发,亦具备通用目的使用能力。
8 收藏0 次下载activeamd64镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

php 镜像详细说明

php 使用指南

php 配置说明

php 官方文档

PHP Docker 镜像 (amd64)

镜像概述和主要用途

PHP 是一种为 Web 开发设计的服务器端脚本语言,也可用作通用编程语言。PHP 可以添加到纯 HTML 中,也可以与各种模板引擎和 Web 框架一起使用。PHP 代码通常由解释器处理,解释器既可以作为 Web 服务器上的原生模块实现,也可以作为通用网关接口 (CGI) 实现。

***.org/wiki/PHP

!logo

注意: 这是 php 镜像 的 amd64 架构构建版本。有关更多信息,请参阅镜像文档中的 "除 amd64 之外的架构?" 和***镜像 FAQ 中的 "Git 中的镜像源已更改,现在该怎么办?"。

核心功能和特性

  • 基于*** PHP 源码构建,针对 amd64 架构优化
  • 提供多种变体满足不同使用场景(CLI、Apache、FPM、Alpine 等)
  • 内置扩展安装工具(docker-php-ext-configure、docker-php-ext-install、docker-php-ext-enable)
  • 支持自定义 PHP 配置
  • 包含开发和生产环境配置文件
  • 可作为基础镜像构建自定义 PHP 环境

使用场景和适用范围

  • Web 应用开发和部署
  • 命令行脚本运行
  • 微服务架构中的 PHP 服务
  • CI/CD 流程中的 PHP 应用测试
  • 本地开发环境一致性保障
  • 生产环境 PHP 应用容器化部署

快速参考

  • 维护者: Docker 社区

  • 获取帮助: Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow

  • 问题反馈: [***]

  • 支持的架构: (更多信息)
    amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x

  • 支持的标签: 请参见 [***]

详细使用方法和配置说明

基本用法

在 PHP 项目中创建 Dockerfile

dockerfile
FROM amd64/php:8.2-cli
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "php", "./your-script.php" ]

然后,运行以下命令构建并运行 Docker 镜像:

console
$ docker build -t my-php-app .
$ docker run -it --rm --name my-running-app my-php-app

运行单个 PHP 脚本

对于许多简单的单文件项目,编写完整的 Dockerfile 可能不太方便。在这种情况下,可以直接使用 PHP Docker 镜像运行 PHP 脚本:

console
$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp amd64/php:8.2-cli php your-script.php

安装更多 PHP 扩展

许多扩展已经编译到镜像中,因此在费力编译更多扩展之前,值得检查 php -m 或 php -i 的输出。

我们提供了辅助脚本 docker-php-ext-configure、docker-php-ext-install 和 docker-php-ext-enable,以便更轻松地安装 PHP 扩展。

为了保持镜像较小,PHP 的源代码保存在压缩的 tar 文件中。为了便于将 PHP 源代码与任何扩展链接,我们还提供了辅助脚本 docker-php-source,用于轻松提取 tar 文件或删除提取的源代码。注意:如果使用 docker-php-source 提取源代码,请确保在 docker 镜像的同一层中删除它。

Dockerfile
FROM amd64/php:8.2-cli
RUN docker-php-source extract \
	# 执行重要操作 \
	&& docker-php-source delete

PHP 核心扩展

例如,如果需要带有 gd 扩展的 PHP-FPM 镜像,可以继承喜欢的基础镜像,并编写自己的 Dockerfile,如下所示:

dockerfile
FROM amd64/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

请记住,必须手动安装扩展的依赖项。如果扩展需要自定义 configure 参数,可以像本示例一样使用 docker-php-ext-configure 脚本。在这种情况下,无需手动运行 docker-php-source,因为 configure 和 install 脚本会处理它。

如果难以确定在 docker-php-ext-install 之前需要安装哪些 Debian 或 Alpine 软件包,请查看 install-php-extensions 项目。该脚本建立在 docker-php-ext-* 脚本的基础上,通过自动添加和删除 Debian (apt) 和 Alpine (apk) 软件包,简化了 PHP 扩展的安装。例如,要安装 GD 扩展,只需运行 install-php-extensions gd。此工具由社区成员贡献,未包含在镜像中,请参阅其 Git 仓库了解安装、使用和问题。

默认扩展

某些扩展是默认编译的。这取决于所使用的 PHP 版本。在容器中运行 php -m 可以获取特定版本的扩展列表。

PECL 扩展

有些扩展不随 PHP 源代码提供,而是通过 PECL 提供。要安装 PECL 扩展,请使用 pecl install 下载并编译它,然后使用 docker-php-ext-enable 启用它:

dockerfile
FROM amd64/php:8.2-cli
RUN pecl install redis-5.3.7 \
	&& pecl install xdebug-3.2.1 \
	&& docker-php-ext-enable redis xdebug
dockerfile
FROM amd64/php:8.2-cli
RUN apt-get update && apt-get install -y libmemcached-dev libssl-dev zlib1g-dev \
	&& pecl install memcached-3.2.0 \
	&& docker-php-ext-enable memcached

强烈建议用户在 pecl install 调用中使用明确的版本号,以确保适当的 PHP 版本兼容性(PECL 在选择要安装的扩展版本时不检查 PHP 版本兼容性,但在尝试安装时会检查)。除了兼容性问题外,确保知道依赖项何时接收更新并能够直接控制这些更新也是一个好***惯。

与 PHP 核心扩展不同,PECL 扩展应串行安装,以便在出现问题时正确失败。否则,PECL 会跳过错误。例如,pecl install memcached-3.2.0 && pecl install redis-5.3.7,而不是 pecl install memcached-3.2.0 redis-5.3.7。但是,docker-php-ext-enable memcached redis 可以在一个命令中完成。

其他扩展

有些扩展不通过 Core 或 PECL 提供;也可以安装这些扩展,尽管过程自动化程度较低:

dockerfile
FROM amd64/php:8.2-cli
RUN curl -fsSL '[自定义PHP模块的URL]' -o module-name.tar.gz \
	&& mkdir -p module-name \
	&& sha256sum -c "[shasum值]  module-name.tar.gz" \
	&& tar -xf module-name.tar.gz -C module-name --strip-components=1 \
	&& rm module-name.tar.gz \
	&& ( \
		cd module-name \
		&& phpize \
		&& ./configure --enable-module-name \
		&& make -j "$(nproc)" \
		&& make install \
	) \
	&& rm -r module-name \
	&& docker-php-ext-enable module-name

docker-php-ext-* 脚本可以接受任意路径,但必须是绝对路径(以与内置扩展名区分),因此上述示例也可以写成以下形式:

dockerfile
FROM amd64/php:8.2-cli
RUN curl -fsSL '[自定义PHP模块的URL]' -o module-name.tar.gz \
	&& mkdir -p /tmp/module-name \
	&& sha256sum -c "[shasum值]  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 变体,有几种选择:

  • 如果内核 版本为 4.11 或更高,可以添加 --sysctl net.ipv4.ip_unprivileged_port_start=0(这将是 Docker 未来版本的默认设置),然后 --user 应该像对 FPM 那样工作。
  • 如果将 Apache 配置调整为使用"非特权"端口(默认情况下大于 1024),则无论内核版本如何,--user 都应该像对 FPM 那样工作。

对于以任意用户身份运行 FPM 变体,应使用 docker run 的 --user 标志(可以接受容器 /etc/passwd 文件中的用户名/组,如 --user daemon,或特定的 UID/GID,如 --user 1000:1000)。

配置

此镜像附带默认的 php.ini-development 和 php.ini-production 配置文件。

强烈建议在生产环境中使用的镜像使用生产配置!

可以通过将配置文件复制到 $PHP_INI_DIR/conf.d/ 目录来自定义默认配置。

示例

dockerfile
FROM amd64/php:8.2-fpm-alpine

# 使用默认生产配置
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"

在许多生产环境中,还建议(构建并)启用 PHP 核心 OPcache 扩展以提高性能。有关更多详细信息,请参阅 上游 OPcache 文档。

"E: Package 'php-XXX' has no installation candidate" 错误

从 docker-library/php#542 开始,此镜像阻止安装 Debian 的 PHP 软件包。在 docker-library/php#551 (comment) 中对此更改有一些额外讨论,但要点是在此镜像中安装 Debian 的 PHP 软件包会导致单个镜像中存在两个冲突的 PHP 安装,这几乎肯定不是预期结果。

对于因此更改而遇到问题并正在寻找临时解决方法的用户,在开发适当修复程序时,将以下简单行添加到 Dockerfile 应该可以删除阻止(强烈警告:这将允许安装第二个 PHP 安装,除非您确实知道自己在做什么,否则这绝对不是您想要的):

dockerfile
RUN rm /etc/apt/preferences.d/no-debian-php

此错误的正确解决方案是要么使用 FROM debian:XXX 并直接安装 Debian 的 PHP 软件包,要么使用 docker-php-ext-install、pecl 和/或 phpize 安装必要的附加扩展和工具。

镜像变体

amd64/php 镜像有多种风格,每种风格都设计用于特定用例。

其中一些标签可能包含 bookworm 或 trixie 等名称。这些是 Debian 发行版的套件代码名称,表示镜像基于哪个发行版。如果您的镜像需要安装除镜像随附软件包之外的任何其他软件包,您可能需要明确指定其中之一,以最大程度地减少 Debian 有新版本时的中断。

amd64/php:<version>-cli

此变体包含带有默认模块的 PHP CLI 工具。如果需要 Web 服务器,这可能不是您要找的镜像。它设计为既可作为一次性容器使用(挂载源代码并启动容器以启动应用程序),也可作为构建其他镜像的基础。

它也是唯一包含(不推荐的)php-cgi 二进制文件的变体,这对于某些事情(如 PPM)可能是必要的。

请注意,amd64/php 的所有变体都包含 PHP CLI (/usr/local/bin/php)。

amd64/php:<version>-apache

此镜像包含 Debian 的 Apache httpd 与 PHP(作为 mod_php),默认使用 mpm_prefork。

使用 Dockerfile 的 Apache

dockerfile
FROM amd64/php:7.2-apache
COPY src/ /var/www/html/

其中 src/ 是包含所有 PHP 代码的目录。然后,运行以下命令构建并运行 Docker 镜像:

console
$ docker build -t my-php-app .
$ docker run -d --name my-running-app my-php-app

建议添加 php.ini 配置文件;有关详细信息,请参阅"配置"部分。

不使用 Dockerfile 的 Apache

console
$ docker run -d -p 80:80 --name my-apache-php-app -v "$PWD":/var/www/html amd64/php:7.2-apache

更改 DocumentRoot(或其他 Apache 配置)

某些应用程序可能希望更改 Apache 中的默认 DocumentRoot(远离 /var/www/html)。以下演示了一种使用环境变量的方法(也可以在容器运行时修改):

dockerfile
FROM amd64/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

类似的技术也可用于其他 Apache 配置选项。

amd64/php:<version>-fpm

此变体包含 PHP 的 FastCGI 进程管理器 (FPM),这是推荐的 PHP FastCGI 实现。

为了使用此镜像变体,需要某种反向代理(如 NGINX、Apache 或其他支持 FastCGI 协议的工具)。

一些可能有帮助的资源:

  • FPM 的***配置参考
  • @md5 的简化示例
  • Pascal Landau 的详细文章
  • Stack Overflow 讨论
  • Apache httpd Wiki 示例

警告: FastCGI 协议本质上是信任的,

查看更多 php 相关镜像 →
php logo
php
by library
官方
PHP脚本语言虽最初为Web开发设计,却兼具通用目的用途,作为一种广泛应用的服务器端脚本语言,它能高效处理动态网页生成、数据库交互等Web开发核心任务,同时也可用于编写命令行脚本、开发桌面应用及进行系统管理等非Web领域,凭借其简洁语法与跨平台特性,成为众多开发者在不同场景下的实用工具。
78171B+ pulls
上次更新:11 天前
cimg/php logo
cimg/php
by CircleCI
认证
CircleCI PHP便捷镜像,专为PHP项目在CircleCI平台上的持续集成流程设计,提供预配置环境以简化集成部署。
610M+ pulls
上次更新:16 天前
devwithlando/php logo
devwithlando/php
by Lando Alliance
Lando是一款受专业开发者信赖的本地开发和DevOps工具,可帮助用户摆脱低效开发工具的束缚,节省时间与精力,专注于实际工作。
151M+ pulls
上次更新:10 天前
serversideup/php logo
serversideup/php
by Server Side Up
适合生产环境的PHP Docker镜像,针对Laravel和WordPress进行了优化。
511M+ pulls
上次更新:10 天前
paketobuildpacks/php logo
paketobuildpacks/php
by Linux Foundation
暂无描述
5M+ pulls
上次更新:10 个月前

用户好评

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

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"

用户评价详情

oldzhang - 运维工程师

Linux服务器

5

Docker加速体验非常流畅,大镜像也能快速完成下载。

Nana - 后端开发

Mac桌面

4.9

配置Docker镜像源后,拉取速度快了数倍,开发体验提升明显。

Qiang - 平台研发

K8s集群

5

轩辕镜像在K8s集群中表现很稳定,容器部署速度明显加快。

小敏 - 测试工程师

Windows桌面

4.8

Docker镜像下载不再超时,测试环境搭建更加高效。

晨曦 - DevOps工程师

宝塔面板

5

配置简单,Docker镜像源稳定,适合快速部署环境。

阿峰 - 资深开发

群晖NAS

5

在群晖NAS上配置后,镜像下载速度飞快,非常适合家庭实验环境。

俊仔 - 后端工程师

飞牛NAS

4.9

Docker加速让容器搭建顺畅无比,再也不用等待漫长的下载。

Lily - 测试经理

Linux服务器

4.8

镜像源覆盖面广,更新及时,团队一致反馈体验不错。

浩子 - 云平台工程师

Podman容器

5

使用轩辕镜像后,Podman拉取镜像稳定无比,生产环境可靠。

Kai - 运维主管

爱快路由

5

爱快系统下配置加速服务,Docker镜像拉取速度提升非常大。

翔子 - 安全工程师

Linux服务器

4.9

镜像源稳定性高,安全合规,Docker拉取无忧。

亮哥 - 架构师

K8s containerd

5

大规模K8s集群下镜像加速效果显著,节省了大量时间。

慧慧 - 平台开发

Docker Compose

4.9

配置Compose镜像加速后,整体构建速度更快了。

Tina - 技术支持

Windows桌面

4.8

配置简单,镜像拉取稳定,适合日常开发环境。

宇哥 - DevOps Leader

极空间NAS

5

在极空间NAS上使用Docker加速,体验流畅稳定。

小静 - 数据工程师

Linux服务器

4.9

Docker镜像源下载速度快,大数据环境搭建轻松完成。

磊子 - SRE

宝塔面板

5

使用轩辕镜像后,CI/CD流程整体快了很多,值得推荐。

阿Yang - 前端开发

Mac桌面

4.9

国内网络环境下,Docker加速非常给力,前端环境轻松搭建。

Docker迷 - 架构师

威联通NAS

5

威联通NAS下配置镜像加速后,Docker体验比官方源好很多。

方宇 - 系统工程师

绿联NAS

5

绿联NAS支持加速配置,Docker镜像下载快且稳定。

常见问题

Q1:轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

Q2:轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

Q3:流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

Q4:410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

Q5:manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

Q6:镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像加速服务

Windows/Mac

在 Docker Desktop 配置镜像加速

Docker Compose

Docker Compose 项目配置加速

K8s Containerd

Kubernetes 集群配置 Containerd

宝塔面板

在宝塔面板一键配置镜像加速

群晖

Synology 群晖 NAS 配置加速

飞牛

飞牛 fnOS 系统配置镜像加速

极空间

极空间 NAS 系统配置加速服务

爱快路由

爱快 iKuai 路由系统配置加速

绿联

绿联 NAS 系统配置镜像加速

威联通

QNAP 威联通 NAS 配置加速

Podman

Podman 容器引擎配置加速

Singularity/Apptainer

HPC 科学计算容器配置加速

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名加速

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
©2024-2025 源码跳动
商务合作电话:17300950906Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.