ghcr.io/mlocati/php-extension-installer:2.11.19
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
在官方 PHP Docker 镜像中轻松安装 PHP 扩展
本仓库提供了一个脚本,可用于在https://hub.docker.com/_/php/内便捷安装 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 的最新 STABLE 版本(例如 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
[!NOTE] 当 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 内置捆绑的吗?
部分 PHP 扩展是随 PHP 源代码一起捆绑发布的,例如 gd 和 zip。
其中部分扩展同时也在 PECL 和/或独立源代码仓库中提供。
默认情况下,install-php-extensions 会优先安装 PHP 源代码中内置的捆绑版本。
如果你希望使用远程提供的版本:
- 对于使用 PECL 版本:只需在包名后追加稳定性状态即可。例如:
install-php-extensions zip-stable
- 对于从源代码安装:使用上述指定的语法即可。例如:
install-php-extensions php/pecl-database-oci8@7aa1061
install-php-extensions 支持为以下扩展安装远程版本,而非内置捆绑版本:
- pdo_oci
- oci8
- zip
安装 composer
你也可以安装 https://getcomposer.org/,同时支持指定其主版本号或完整版本号。
使用示例:
# 安装最新版本
install-php-extensions @composer
# 安装 1.x 系列的最新版本
install-php-extensions @composer-1
# 安装指定的具体版本
install-php-extensions @composer-2.0.2
Let's Encrypt 证书相关问题
Let's Encrypt 的根 CA 证书已发生变更(https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/),该变更会导致以下老旧 Linux 发行版出现问题:
- Debian Jessie (8)
- Debian Stretch (9)
- Alpine Linux 3.7
- Alpine Linux 3.8
你可以通过该脚本修复该问题:只需传入 @fix_letsencrypt 作为参数即可:
install-php-extensions @fix_letsencrypt
支持的 PHP 扩展
以下是 ghcr.io/mlocati/php-extension-installer 镜像(参考标签:latest)支持的 PHP 扩展与各版本兼容对照表,勾选标记表示该扩展可在对应 PHP 版本中正常安装使用:
| 扩展 | PHP 8.5 | PHP 8.4 | PHP 8.3 | PHP 8.2 | PHP 8.1 | PHP 8.0 | PHP 7.4 | PHP 7.3 | PHP 7.2 | PHP 7.1 | PHP 7.0 | PHP 5.6 | PHP 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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
支持的扩展数量:162
注:预安装的 PHP 扩展不计入此列表。
你可以使用以下命令列出这些预安装扩展(请将 php:8.5-cli 替换为你需要的 PHP 版本):
$ docker run --rm php:8.5-cli php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
hash
iconv
json
lexbor
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
random
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
uri
xml
xmlreader
xmlwriter
Zend OPcache
zlib
[Zend Modules]
Zend OPcache
配置
你可以通过环境变量配置该脚本的行为,并针对部分扩展进行精细调整,以满足你的使用需求。
以下是配置示例:
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-extensions 可能还会通过其他方式配置系统(相关示例请https://github.com/mlocati/docker-php-extension-installer/blob/2.9.28/install-php-extensions#L2234-L2286查看) |
| 无 | IPE_PROCESSOR_COUNT | 默认使用所有可用处理器。设置该环境变量可覆盖脚本自动检测的处理器数量(用于并行编译) |
| 无 | IPE_DONT_ENABLE=1 | 默认情况下,脚本会安装并启用扩展。如果你仅希望安装扩展而不启用它,可设置该环境变量。后续如需启用扩展,可执行 docker-php-ext-enable 命令(例如:docker-php-ext-enable xdebug)。请注意:安装部分 PHP 扩展要求其他扩展已提前启用,请谨慎使用此功能。 |
| 无 | IPE_SKIP_CHECK=1 | 默认情况下,脚本会检查扩展是否可以被启用:如果你想跳过该检查,可使用此标志。请注意:扩展可能会在破坏 PHP 运行的情况下被强制启用,请谨慎使用此功能。 |
| 无 | IPE_NOSTRIP=1 | 设置该环境变量后,编译生成的 PHP 扩展将保留调试符号(适用于调试分段错误等崩溃问题) |
| 无 | IPE_KEEP_SYSPKG_CACHE=1 | 默认情况下,脚本会清理 apt/apk/pear 缓存以节省磁盘空间。设置该环境变量可禁用此自动清理行为 |
| lzf | IPE_LZF_BETTERCOMPRESSION=1 | 默认情况下,install-php-extensions 编译的 lzf 扩展优先考虑速度而非压缩率;你可以使用该环境变量让编译生成的扩展优先考虑压缩率而非速度 |
| event | IPE_EVENT_NAMESPACE=... | 默认情况下,event 类定义在根命名空间下。你可以使用该环境变量指定自定义命名空间 |
| gd | IPE_GD_WITHOUTAVIF=1 | 从 PHP 8.1 版本开始,gd 支持 AVIF 格式。在 Debian 11 及更早版本、Alpine 3.14 及更早版本中启用该支持需要编译 libaom/libdav1d/libyuv/libavif,耗时较长。在这些操作系统版本上可设置该环境变量禁用 AVIF 支持 |
| oci8 & pdo_oci | IPE_INSTANTCLIENT_BASIC=1 | oci8 和 pdo_oci PHP 扩展依赖 https://www.oracle.com/database/technologies/instant-client.html。为了节省磁盘空间,默认安装 Basic Lite 版本:如果你需要安装完整的 Basic(非精简)版本,只需设置该环境变量即可 |
| http, intl, mongodb | IPE_ICU_EN_ONLY=1 | 部分扩展依赖 ICU 库,在 Alpine 3.16 及更高版本中使用该标志可安装体积更小、仅支持英语的 ICU 库 |
| pspell | IPE_ASPELL_LANGUAGES='...' | 配置可用的语言(例如:IPE_ASPELL_LANGUAGES='en fr')。未指定时默认使用 en |
| 无 | IPE_DEB_ARCHIVE & IPE_DEB_ARCHIVE_SECURITY | 非常老旧的 Debian 版本(例如 Jessie)的 APT 软件包可能已被归档:你可以使用这些环境变量指定这些 APT 归档源的自定义 URL |
| newrelic | IPE_NEWRELIC_DAEMON=1 | 同时安装 NewRelic 守护进程 |
| newrelic | IPE_NEWRELIC_KEEPLOG=1 | 保留 NewRelic 安装过程中的日志文件(路径为 /tmp/nrinstall-….tar) |
| newrelic | NR_INSTALL_KEY | 你的 New Relic 许可证密钥 |
| ddtrace | IPE_DD_APPSEC=1 | 同时启用 Datadog https://docs.datadoghq.com/security/application_security/ 模块(ddappsec)。要求 PHP 7.0+,且使用 1.x 版本的追踪器 |
| ddtrace | IPE_DD_PROFILING=1 | 同时启用 Datadog https://docs.datadoghq.com/profiler/ 模块(datadog-profiling)。要求 PHP 7.1+、Alpine 3.13+(或任意版本 Debian),且使用 1.x 版本的追踪器 |
| swoole | IPE_SWOOLE_WITHOUT_IOURING=1 | 安全专家认为 io_uring 内核功能存在安全风险(相关说明可查看此处和此处)。默认情况下 Swoole 6 及更高版本开启了 io_uring 支持,使用该环境变量可跳过 io_uring 配置 |
| saxon | IPE_SAXON_EDITION=EE | 指定要使用的 Saxon 版本:EE 为企业版(默认值),PE 为专业版,HE 为家庭版 |
特殊要求
部分扩展存在特殊使用要求:
| 扩展名称 | 要求限制 |
|---|---|
| cassandra | • 在 jessie Docker 镜像中不可用<br>• 在 stretch Docker 镜像中不可用 |
| ddtrace | 在 jessie Docker 镜像中不可用 |
| ecma_intl | • 在 buster Docker 镜像中不可用<br>• 在 bullseye Docker 镜像中不可用<br>• 在 trixie Docker 镜像中不可用<br>• 在 alpine3.22 Docker 镜像中不可用<br>• 在 alpine3.23 Docker 镜像中不可用<br>• 在 alpine3.24 Docker 镜像中不可用 |
| geos | • 在 alpine3.9 Docker 镜像中不可用<br>• 在 alpine3.10 Docker 镜像中不可用 |
| judy | • 在 alpine3.13 Docker 镜像中不可用<br>• 在 alpine3.14 Docker 镜像中不可用<br>• 在 alpine3.15 Docker 镜像中不可用 |
| lz4 | 在 jessie Docker 镜像中不可用 |
| memprof | • 在 alpine3.9 Docker 镜像中不可用<br>• 在 alpine3.10 Docker 镜像中不可用<br>• 在 alpine3.11 Docker 镜像中不可用<br>• 在 alpine3.12 Docker 镜像中不可用<br>• 在 alpine3.13 Docker 镜像中不可用<br>• 在 alpine3.14 Docker 镜像中不可用<br>• 在 alpine3.15 Docker 镜像中不可用 |
| parallel | 要求使用启用了线程安全(zts)编译 PHP 的镜像 |
| parle | 在 jessie Docker 镜像中不可用 |
| pdo_*** | • 在 Alpine 系列 Docker 镜像中不可用<br>• 在 jessie Docker 镜像中不可用 |
| phpy | 在 buster Docker 镜像中不可用 |
| pthreads | 要求使用启用了线程安全(zts)编译 PHP 的镜像 |
| saxon | • 在 alpine3.7 Docker 镜像中不可用<br>• 在 alpine3.8 Docker 镜像中不可用<br>• 在 alpine3.9 Docker 镜像中不可用<br>• 在 alpine3.10 Docker 镜像中不可用<br>• 在 alpine3.11 Docker 镜像中不可用<br>• 在 7.2-alpine Docker 镜像中不可用<br>• 在 7.3-alpine Docker 镜像中不可用<br>• 在 7.4-alpine Docker 镜像中不可用 |
| seasclick | • 在 alpine3.23 Docker 镜像中不可用<br>• 在 alpine3.24 Docker 镜像中不可用 |
| simdjson | • 在 jessie Docker 镜像中不可用<br>• 在 stretch Docker 镜像中不可用 |
| sodium | 在 jessie Docker 镜像中不可用 |
| sqlsrv | • 在 7.1-alpine3.9 Docker 镜像中不可用<br>• 在 7.1-alpine3.10 Docker 镜像中不可用 |
| statgrab | • 在 alpine3.12 Docker 镜像中不可用<br>• 在 alpine3.13 Docker 镜像中不可用<br>• 在 alpine3.14 Docker 镜像中不可用<br>• 在 alpine3.15 Docker 镜像中不可用<br>• 在 alpine3.16 Docker 镜像中不可用 |
| v8js | • 在 buster Docker 镜像中不可用<br>• 在 bullseye Docker 镜像中不可用<br>• 在 alpine3.12 Docker 镜像中不可用<br>• 在 alpine3.13 Docker 镜像中不可用<br>• 在 alpine3.14 Docker 镜像中不可用<br>• 在 alpine3.15 Docker 镜像中不可用<br>• 在 alpine3.16 Docker 镜像中不可用<br>• 在 alpine3.17 Docker 镜像中不可用<br>• 在 alpine3.18 Docker 镜像中不可用 |
| vips | • 在 alpine3.9 Docker 镜像中不可用<br>• 在 jessie Docker 镜像中不可用 |
| wikidiff2 | • 在 jessie Docker 镜像中不可用<br>• 在 stretch Docker 镜像中不可用 |
| xpass | 在 buster Docker 镜像中不可用 |
如何查看当前使用的 Linux 发行版?
你可以运行以下命令:
cat /etc/os-release
示例输出:
- 对于 Debian 11(Bullseye),输出结果如下:
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
- 对于 Alpine Linux 3.14,输出结果如下:
PRETTY_NAME="Alpine Linux v3.14"
库版本
部分 PHP 扩展依赖的系统库如果未在系统预设环境中提供,install-php-extensions 会自动编译或下载对应库。你可以通过设置对应的环境变量,指定使用非默认版本的库。例如:
IPE_LIBVERSION_XCRYPT=4.4.36 install-php-extensions xpass
[!WARNING] 非默认版本的库可能无法正常工作,使用该功能的风险需由你自行承担。
以下是相关库的完整列表(默认版本为当前最新版 install-php-extensions 所使用的版本):
ghcr.io/mlocati/php-extension-installer 参考标签:latest
| 库 | 环境变量 | 默认版本 | 使用者 | 说明 |
|---|---|---|---|---|
| https://aomedia.googlesource.com/aom/+refs | IPE_LIBVERSION_AOM | 3.12.0 | gd | 仅在 Alpine 上配合 PHP 8.1+ 使用 - 格式同源码归档文件名 |
| https://github.com/gearman/gearmand/releases | IPE_LIBVERSION_GEARMAN | 2.1.0 | gearman | 仅适用于 Alpine |
| https://github.com/Tessil/hat-trie/releases | IPE_LIBVERSION_HATTRIE | 0.7.1 | php_trie | |
| libidnkit | IPE_LIBVERSION_IDNKIT | 2.3 | http | 仅配合 PHP 7.0+ 使用 |
| https://github.com/amzn/ion-c/releases | IPE_LIBVERSION_IONC | 1.1.6 | ion | |
| https://github.com/chrislim2888/IP2Location-C-Library/tags | IPE_LIBVERSION_IP2LOCATION | 8.7.0 | ip2location | |
| libmpdec | IPE_LIBVERSION_MPDEC | 4.0.1 | decimal | 仅适用于 Alpine 和 Debian 12+ |
| Microsoft ODBC Driver for SQL Server (Alpine) | IPE_LIBVERSION_MSODBC | 18.7.1.1-1@ade174b7-8cea-4543-91a6-c33ae320c2f0 | pdo_sqlsrv, sqlsrv | 仅在 Alpine 上配合 PHP 7.4+ 使用,格式为 @(相关内容请参阅 Microsoft 官网 的下载地址) |
| Microsoft ODBC Driver 17 for SQL Server (Alpine) | IPE_LIBVERSION_MSODBC17 | 17.11.1.1-1@607ebe2c-e17c-4c34-b367-10a75b83bef9 | pdo_sqlsrv, sqlsrv | 仅在 Alpine 上配合最高支持 PHP 7.3 的版本使用,格式为 @(相关内容请参阅 Microsoft 官网 的下载地址) |
| https://github.com/tlwg/libthai/releases | IPE_LIBVERSION_THAI | 0.1.30 | wikidiff2 | 仅适用于 Alpine |
| https://github.com/libtom/libtomcrypt/releases | IPE_LIBVERSION_TOMCRYPT | 1.18.2 | pdo_firebird, swoole | 仅在 Alpine 上配合 PHP 8.4+ 使用 |
| https://github.com/libtom/libtommath/releases | IPE_LIBVERSION_TOMMATH | 1.3.0 | pdo_firebird, swoole | 仅在 Alpine 上配合 PHP 8.4+ 使用 |
| https://github.com/besser82/libxcrypt/releases | IPE_LIBVERSION_XCRYPT | 4.5.2 | xpass | 仅适用于 Alpine |
| LibXDiff | IPE_LIBVERSION_XDIFF | 0.23 | xdiff | |
| https://chromium.googlesource.com/libyuv/libyuv/+log | IPE_LIBVERSION_YUV | d359a9f922af840b043535d43cf9d38b220d102e | gd | 仅在 Alpine < 3.15 且 Debian < 12 的环境下配合 PHP 8.1+ 使用(设置了 IPE_GD_WITHOUTAVIF 的情况除外),格式为 git 提交哈希 |
| https://github.com/***/zstd/releases | IPE_LIBVERSION_ZSTD | 1.5.7 | redis | 仅配合 redis 5+ 使用 |
测试
在提交拉取请求时,系统会运行一个 https://github.com/mlocati/docker-php-extension-installer/blob/master/.github/workflows/test-extensions.yml,用于验证受影响的 PHP 扩展是否可正常工作(详见下文)。
此外,我们还会验证新版本 PHP 扩展及其依赖库是否仍可正常使用。 这项工作会通过另一个 https://github.com/mlocati/docker-php-extension-installer/blob/master/.github/workflows/check-updates.yml 按计划定期执行。 如果执行失败,系统会向一个 *** 频道 发送消息。 你可以自由订阅该频道,接收失败通知。
如何贡献
请参阅 https://github.com/mlocati/docker-php-extension-installer/blob/master/CONTRIBUTING.md 文件。
维护人员须知
请参阅 https://github.com/mlocati/docker-php-extension-installer/blob/master/MAINTAINERS.md 文件。
想要表达谢意?
你可以请我喝杯 https://github.com/***/mlocati 或者 单次咖啡 :wink:
镜像拉取常见问题
功能
错误码
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务