如何在PHP 8.1的Dockerfile中安装XML-RPC扩展?
解决PHP 8.1-fpm中安装XML-RPC扩展的问题
PHP 8.0及以后的版本已经官方移除了XML-RPC扩展,所以你之前尝试的docker-php-ext-install xmlrpc或者系统包php8.1-xmlrpc都会失败——这些方式在PHP7.4可用,是因为当时该扩展还属于PHP核心附带组件。
要在PHP8.1中安装XML-RPC,需要通过PECL编译安装适配版本,具体步骤如下:
- 先添加编译依赖:在
apt-get install的列表里加入libxml2-dev(XML-RPC编译依赖libxml2库) - 使用PECL安装指定的RC版本(该版本适配PHP8+):
pecl install xmlrpc-1.0.0RC3 - 启用扩展:
docker-php-ext-enable xmlrpc
修改后的完整RUN指令如下:
RUN apt-get update \ && apt-get install -y zlib1g-dev g++ git libicu-dev zip libzip-dev zip libpng-dev libssl-dev libxslt-dev wkhtmltopdf procps acl libxml2-dev \ && pecl install apcu xmlrpc-1.0.0RC3 \ && docker-php-ext-install intl opcache pdo pdo_mysql zip gd xsl -j$(nproc) \ && docker-php-ext-enable apcu opcache xmlrpc \ && docker-php-ext-configure zip
关键说明
- 必须添加
libxml2-dev,否则PECL编译xmlrpc时会报错找不到头文件 - 必须指定
xmlrpc-1.0.0RC3版本,PECL上的稳定版不支持PHP8+ - 不需要单独执行
docker-php-ext-configure xmlrpc,该扩展编译时会自动识别配置
内容的提问来源于stack exchange,提问作者Aislinn
相关产品推荐
相关产品推荐

