专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单页面收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题轩辕镜像免费版
其他
关于我们网站地图
热门搜索:
ghcr.io/mlocati/php-extension-installer

ghcr.io/mlocati/php-extension-installer:2.9.12

ghcr.iolinux/amd642.9.12大小: 未知更新于 2026年6月6日
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 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 Docker 镜像中轻松安装 PHP 扩展

本仓库包含一个脚本,可用于在https://hub.docker.com/_/php/%E4%B8%AD%E8%BD%BB%E6%9D%BE%E5%AE%89%E8%A3%85 PHP 扩展。

该脚本会安装所有必要的 APT/APK 包;脚本执行结束时,将移除不再需要的包,从而显著减小镜像体积。

支持的 Docker 镜像包括:

  • 基于 Debian 的 Docker 镜像:从 jessie(Debian 8)开始(最低 PHP 版本:5.5)
  • 基于 Alpine 的 Docker 镜像:从 Alpine 3.9 开始(最低 PHP 版本:7.1)

另请参见特殊要求部分中的说明。

使用方法

在 Dockerfile 中使用此脚本有多种方式。

以下是安装 GD 和 xdebug PHP 扩展的 Dockerfile 示例列表:

使用 ADD 动态下载脚本

FROM php:7.2-cli

ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/

RUN install-php-extensions gd xdebug

使用 curl 动态下载脚本

FROM php:7.2-cli

RUN curl -sSLf \
-o /usr/local/bin/install-php-extensions \
https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \
chmod +x /usr/local/bin/install-php-extensions && \
install-php-extensions gd xdebug

使用 curl 直接执行

FROM php:8.2-cli

RUN ( curl -sSLf https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - || echo 'return 1' ) | sh -s \
gd xdebug

从 Docker 镜像复制脚本

  • 使用 GitHub Container Registry
FROM php:8.4-cli

COPY --from=ghcr.io/mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/

RUN install-php-extensions gd xdebug
  • 使用 Docker Hub
FROM php:8.4-cli

COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/

RUN install-php-extensions gd xdebug

[!WARNING] 使用此方法可能会使用过时版本的 Docker 镜像。建议运行docker pull ghcr.io/mlocati/php-extension-installer或docker pull mlocati/php-extension-installer以使用最新版本。

使用 Docker 镜像中的脚本

  • 使用 GitHub Container Registry
RUN --mount=type=bind,from=ghcr.io/mlocati/php-extension-installer:latest,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \
install-php-extensions gd xdebug
  • 使用 Docker Hub
RUN --mount=type=bind,from=mlocati/php-extension-installer:latest,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions \
install-php-extensions gd xdebug

[!WARNING] 使用此方法可能会使用过时版本的 Docker 镜像。建议运行docker pull ghcr.io/mlocati/php-extension-installer或docker pull mlocati/php-extension-installer以使用最新版本。

安装特定版本的扩展

只需在模块名称后添加-。例如:

install-php-extensions xdebug-2.9.7

脚本还支持通过在版本前添加插入符号(^)来解析兼容版本。例如:

# 安装最新的 xdebug 2.x 版本(如 2.9.8)
install-php-extensions xdebug-^2
# 安装最新的 xdebug 2.8.x 版本(如 2.8.1)
install-php-extensions xdebug-^2.8

请注意,使用上述语法将获取最新的兼容版本,该版本可能不稳定。若要安装最新的稳定版本,可添加后缀@stable:

# 安装最新的稳定版 xdebug 3.x 版本(如 3.2.2)
install-php-extensions xdebug-^3@stable

(有效的后缀包括:@snapshot、@devel、@alpha、@beta 和 @stable)

PECL 上可用的预发布版本扩展可通过在扩展名称后添加其状态(即alpha、beta、rc、preview、devel 或 snapshot)来安装。例如:

install-php-extensions xdebug-beta

提示:当 PECL 上的最新版本不稳定,而你希望保留最新稳定版本时,可通过在扩展名称后添加stable状态来强制安装。例如:

install-php-extensions mongodb-stable

从源代码安装扩展

你也可以从源代码安装 PHP 扩展(前提是源代码包含package.xml或package2.xml文件)。

支持的格式如下:

  • GitHub 托管仓库的简短格式。例如,对于 https://github.com/php-memcached-dev/php-memcached GitHub 仓库,可简写成:
# 从特定提交安装(完整提交 SHA-1)
install-php-extensions php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8
# 从特定提交安装(简短提交 SHA-1)
install-php-extensions php-memcached-dev/php-memcached@8f106564e6bb
# 从标签 v3.2.0RC2 安装
install-php-extensions php-memcached-dev/php-memcached@v3.2.0RC2
install-php-extensions php-memcached-dev/php-memcached@refs/tags/v3.2.0RC2
# 从分支 master 安装
install-php-extensions php-memcached-dev/php-memcached@master
install-php-extensions php-memcached-dev/php-memcached@refs/heads/master
  • 提供源代码归档的 URL。例如:
# 提交 8f106564e6bb005ca6100b12ccc89000daafa9d8 的 tgz 归档
install-php-extensions https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8
# 标签 v3.1.5 的 tgz 归档
install-php-extensions https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/refs/tags/v3.1.5
# 分支 master 的 tgz 归档
install-php-extensions https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/refs/heads/master
  • 本地目录的绝对路径。例如:
# 下载源代码
curl -o /tmp/source.tgz https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/refs/tags/v3.1.5
tar xzf /tmp/source.tgz -C /tmp
install-php-extensions /tmp/php-memcached-3.1.5

是否为内置扩展?

有些扩展内置在 PHP 源代码中(例如 gd 和 zip)。

其中部分扩展也可在 PECL 和/或源代码仓库中获取。

默认情况下,install-php-extensions 安装内置版本。

若要使用远程版本:

  • 对于 PECL:只需在包名后添加稳定性标识。例如:
install-php-extensions zip-stable
  • 对于源代码安装:使用上文指定的语法。例如:
install-php-extensions php/pecl-database-oci8@7aa1061

安装 composer

您还可以安装 composer,并且可以指定其主版本或完整版本。

示例:

# 安装最新版本
install-php-extensions @composer
# 安装最新的 1.x 版本
install-php-extensions @composer-1
# 安装特定版本
install-php-extensions @composer-2.0.2
扩展PHP 8.5PHP 8.4PHP 8.3PHP 8.2PHP 8.1PHP 8.0PHP 7.4PHP 7.3PHP 7.2PHP 7.1PHP 7.0PHP 5.6PHP 5.5
amqp✓✓✓✓✓✓✓✓✓✓✓✓✓
apcu✓✓✓✓✓✓✓✓✓✓✓✓✓
apcu_bc✓✓✓✓✓
ast✓✓✓✓✓✓✓✓✓✓✓
bcmath✓✓✓✓✓✓✓✓✓✓✓✓✓
bitset✓✓✓✓✓✓✓✓✓✓✓✓✓
blackfire✓✓✓✓✓✓✓✓✓✓✓✓✓
brotli✓✓✓✓✓✓✓✓✓✓✓
bz2✓✓✓✓✓✓✓✓✓✓✓✓✓
calendar✓✓✓✓✓✓✓✓✓✓✓✓✓
cassandra*✓✓✓✓✓✓✓✓✓
cmark✓✓✓✓✓
csv✓✓✓✓✓✓✓✓
dba✓✓✓✓✓✓✓✓✓✓✓✓✓
ddtrace*✓✓✓✓✓✓✓✓✓✓✓✓
decimal✓✓✓✓✓✓✓✓✓✓✓
ds✓✓✓✓✓✓✓✓✓✓✓
ecma_intl*✓✓
enchant✓✓✓✓✓✓✓✓✓✓✓✓✓
ev✓✓✓✓✓✓✓✓✓✓✓✓✓
event✓✓✓✓✓✓✓✓✓✓✓✓✓
excimer✓✓✓✓✓✓✓✓✓✓
exif✓✓✓✓✓✓✓✓✓✓✓✓✓
ffi✓✓✓✓✓✓✓
ftp✓✓✓✓
gd✓✓✓✓✓✓✓✓✓✓✓✓✓
gearman✓✓✓✓✓✓✓✓✓✓✓✓✓
geoip✓✓✓✓✓✓✓
geos*✓✓✓✓✓✓✓✓✓✓✓✓
geospatial✓✓✓✓✓✓✓✓✓✓✓✓✓
gettext✓✓✓✓✓✓✓✓✓✓✓✓✓
gmagick✓✓✓✓✓✓✓✓✓✓✓✓
gmp✓✓✓✓✓✓✓✓✓✓✓✓✓
gnupg✓✓✓✓✓✓✓✓✓✓✓✓✓
grpc✓✓✓✓✓✓✓✓✓✓✓✓✓
http✓✓✓✓✓✓✓✓✓✓✓✓✓
igbinary✓✓✓✓✓✓✓✓✓✓✓✓✓
imagick✓✓✓✓✓✓✓✓✓✓✓✓✓
imap✓✓✓✓✓✓✓✓✓✓✓✓✓
inotify✓✓✓✓✓✓✓✓✓✓✓✓✓
interbase✓✓✓✓✓✓
intl✓✓✓✓✓✓✓✓✓✓✓✓✓
ion✓✓✓✓✓
ioncube_loader✓✓✓✓✓✓✓✓✓✓✓✓
ip2location✓✓✓✓✓✓
jsmin✓✓✓✓✓✓✓
json_post✓✓✓✓✓✓✓✓✓✓✓✓✓
jsonpath✓✓✓✓✓✓✓
judy*✓✓✓✓✓✓
ldap✓✓✓✓✓✓✓✓✓✓✓✓✓
luasandbox✓✓✓✓✓✓✓✓✓✓✓✓✓
lz4*✓✓✓✓✓✓✓✓✓✓✓✓
lzf✓✓✓✓✓✓✓✓✓✓✓✓✓

配置

您可以通过环境变量配置脚本行为,并微调某些扩展以满足需求。

以下是示例:

IPE_LZF_BETTERCOMPRESSION=1 install-php-extensions lzf

以下是所有支持的环境变量列表:

扩展环境变量描述
IPE_DEBUG=1设置此环境变量后,脚本将打印其执行的所有命令(输出会非常详细,仅用于调试目的)
IPE_INSECURE=1设置此环境变量后,程序执行网络操作时将禁用HTTPS证书验证
IPE_SAVE_PERMDEPS_TO=path IPE_SAVE_VOLDEPS_TO=path设置此环境变量后,脚本会将已安装PHP扩展所需的APT/APK包列表(IPE_SAVE_PERMDEPS_TO)和/或构建PHP扩展所需的包列表(IPE_SAVE_VOLDEPS_TO)存储到指定路径。请注意,install-php-extension可能会以其他方式配置系统(https://github.com/mlocati/docker-php-extension-installer/blob/2.9.28/install-php-extensions#L2234-L2286%EF%BC%89
IPE_PROCESSOR_COUNT默认使用所有可用处理器。设置此环境变量可覆盖脚本检测到的处理器数量(用于并行编译)
IPE_DONT_ENABLE=1默认情况下,脚本会安装并启用扩展。如果您只想安装扩展(不启用),可设置此环境变量。后续启用扩展可执行命令 docker-php-ext-enable-(例如:docker-php-ext-enable-xdebug)。注意:安装某些PHP扩展需要其他PHP扩展已启用,因此请谨慎使用此功能。
IPE_SKIP_CHECK=1默认情况下,脚本会检查扩展是否可启用;若要跳过此检查,可使用此标志。注意:扩展可能会在导致PHP崩溃的情况下仍被启用,请谨慎使用此功能。
IPE_NOSTRIP=1设置此环境变量后,已编译的PHP扩展将保留调试符号(对调试段错误等崩溃问题有用)
IPE_KEEP_SYSPKG_CACHE=1默认情况下,脚本会清除apt/apk/pear缓存以节省磁盘空间。设置此环境变量可禁用缓存清除
lzfIPE_LZF_BETTERCOMPRESSION=1默认情况下,install-php-extensions编译lzf扩展时优先考虑速度而非压缩率;使用此环境变量可改为优先考虑压缩率而非速度
eventIPE_EVENT_NAMESPACE=...默认情况下,event类定义在根命名空间中。您可使用此环境变量指定自定义命名空间
gdIPE_GD_WITHOUTAVIF=1从PHP 8.1开始,gd支持AVIF格式。在Debian 11及以下版本和Alpine 3.14及以下版本中,启用AVIF需要编译libaom/libdav1d/libyuv/libavif,这非常耗时。在这些操作系统版本上,您可设置此环境变量禁用AVIF支持
oci8 & pdo_ociIPE_INSTANTCLIENT_BASIC=1oci8和pdo_oci PHP扩展需要Oracle Instant Client。为节省磁盘空间,我们默认安装Basic Lite版本;若要安装Basic(非精简)版本,只需设置此环境变量
http, intl, mongodbIPE_ICU_EN_ONLY=1某些扩展需要ICU库,在Alpine 3.16及更高版本上,使用此标志可安装更小的仅支持英文的ICU库
pspellIPE_ASPELL_LANGUAGES='...'配置可用语言(例如:IPE_ASPELL_LANGUAGES='en fr')。若未指定,默认使用en
IPE_DEB_ARCHIVE & IPE_DEB_ARCHIVE_SECURITY非常旧的Debian版本(如Jessie)的APT包可能已归档:您可使用这些环境变量指定这些APT归档的自定义URL
newrelicIPE_NEWRELIC_DAEMON=1安装NewRelic守护进程
newrelicIPE_NEWRELIC_KEEPLOG=1保留NewRelic安装的日志文件(/tmp/nrinstall-….tar)
newrelicNR_INSTALL_KEY您的New Relic许可证密钥
swooleIPE_SWOOLE_WITHOUT_IOURING=1安全专家认为io_uring内核功能不安全(参见此处和此处)。默认情况下,Swoole 6及更高版本配置了io_uring支持,使用此环境变量可跳过io_uring配置
saxonIPE_SAXON_EDITION=EE要使用的Saxon版本:EE表示企业版(默认),PE表示专业版,HE表示家庭版

测试

提交拉取请求时,会执行一个https://github.com/mlocati/docker-php-extension-installer/blob/master/.github/workflows/test-extensions.yml%E6%9D%A5%E6%A3%80%E6%9F%A5%E5%8F%97%E5%BD%B1%E5%93%8D%E7%9A%84PHP%E6%89%A9%E5%B1%95%E6%98%AF%E5%90%A6%E5%AE%9E%E9%99%85%E5%8F%AF%E7%94%A8%EF%BC%88%E8%A7%81%E4%B8%8B%E6%96%87%EF%BC%89%E3%80%82

此外,我们还会检查PECL仓库中扩展的新版本是否仍然可用。这通过另一个https://github.com/mlocati/docker-php-extension-installer/blob/master/.github/workflows/test-recent-extensions.yml%E6%8C%89%E8%AE%A1%E5%88%92%E6%89%A7%E8%A1%8C%E3%80%82%E5%A6%82%E6%9E%9C%E5%A4%B1%E8%B4%A5%EF%BC%8C%E4%BC%9A%E5%90%91***%E9%A2%91%E9%81%93%E5%8F%91%E9%80%81%E6%B6%88%E6%81%AF%E3%80%82%E6%AC%A2%E8%BF%8E%E8%AE%A2%E9%98%85%E8%AF%A5%E9%A2%91%E9%81%93%E4%BB%A5%E6%8E%A5%E6%94%B6%E5%A4%B1%E8%B4%A5%E9%80%9A%E7%9F%A5%E3%80%82

如何贡献

代码格式化

提交任何拉取请求之前,您应执行 scripts 目录中的 lint 脚本(Windows 上为 lint.bat)。

如果不这样做,且存在编码风格错误,您会看到 Check shell coding style 和/或 Check PHP coding style GitHub Action 失败。错误信息大致如下:

--- filename.orig
+++ filename
@@ -line number,7 +line number,7 @@
good line of code #1
good line of code #2
good line of code #3
- the original line with a wrong coding style
+ the line wrong coding style that has been corrected
good line of code #4
good line of code #5
good line of code #6

因此,您需要修复高亮行(line number 处的行),将 - 后面的内容替换为 + 后面的内容。

添加对新PHP扩展的支持?

  1. 修改 install-php-extensions 脚本
  2. 更新 data/supported-extensions 文件,添加一行新内容,包含扩展的句柄和支持的 PHP 版本列表
  3. 如果扩展需要 ZTS 镜像:在 data/special-requirements 文件中添加一行,格式为扩展句柄后接空格和 zts

示例请参见https://github.com/mlocati/docker-php-extension-installer/pull/60%E3%80%82

为已支持的PHP扩展更改支持的PHP版本?

  1. 修改 install-php-extensions 脚本
  2. 更新 data/supported-extensions 文件,将新的 PHP 版本添加到对应扩展的现有行中

示例请参见https://github.com/mlocati/docker-php-extension-installer/pull/62%E3%80%82

改进已支持扩展的代码?

如果您修改的代码影响一个或多个扩展,请在拉取请求的某个提交消息中添加一行 Test: extension1, extension2。这样,即使您没有修改 data/supported-extensions 文件,测试作业也会检查这些扩展。

提交消息示例如下:

Improve the GD and ZIP extensions

Test: gd, zip

测试一次仅检查单个 PHP 扩展的安装。如果您想同时测试安装多个 PHP 扩展,请使用如下提交消息:

Improve the GD and ZIP extensions

Test: gd+zip

如果您的拉取请求包含多个提交,我们会检查每个提交的“Test:”消息。如果您想停止解析后续提交,请在“Test:”行中添加 -STOP-,例如:

Improve the GD and ZIP extensions

Test: gd, zip, -STOP-

示例请参见https://github.com/mlocati/docker-php-extension-installer/pull/43%E3%80%82

PHP要求和配置选项

关于PHP要求和配置选项的详细信息,请参考相关文档或源码注释。

发布在PECL档案库中的PHP扩展包含一个package.xml(或package2.xml)文件,该文件描述了支持的PHP版本以及可用于编译它的选项。当我们添加对新PHP扩展的支持,以及当PHP扩展的新版本发布时,我们必须检查这些约束条件。

这是一项相当繁琐的任务,因此我开发了一个可让您轻松检查这些约束条件的项目:您可以在 https://mlocati.github.io/pecl-info 找到它(您可以在https://github.com/mlocati/pecl-info%E6%89%BE%E5%88%B0%E5%85%B6%E6%BA%90%E4%BB%A3%E7%A0%81%EF%BC%89%E3%80%82

面向维护者

请参见 https://github.com/mlocati/docker-php-extension-installer/blob/master/MAINTAINERS.md 文件。

您真的想表达感谢吗?

您可以请我喝一杯https://github.com/***/mlocati%E6%88%96%E4%B8%80%E6%AC%A1%E6%80%A7%E5%92%96%E5%95%A1 :wink:

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

排错

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

DNS 超时

DNS 解析 · 网络超时

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

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

用户头像

oldzhang

运维工程师

Linux服务器

5

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

轩辕镜像
镜像详情
...
ghcr.io/mlocati/php-extension-installer
博客Docker 镜像公告与技术博客
热门查看热门 Docker 镜像推荐
教程轩辕镜像功能与使用教程
安装一键安装 Docker 并配置镜像源
官方公众号:源码跳动|官方技术交流群:13763429
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.