Ubuntu 18.04.1 LTS启用SoapClient失败求助:找不到php7.0-soap包
解决Ubuntu 18.04.1 LTS上PHP7.0 SoapClient启用失败的问题
从你的错误日志和操作过程来看,主要有三个核心问题:
- 错误引用了Windows平台的PHP扩展文件(
php_soap.dll),Linux下的PHP扩展是.so格式; - Ubuntu 18.04官方默认源不包含PHP7.0的软件包,导致你无法直接安装
php7.0-soap; - 安装了
php7.2-soap但没有切换到PHP7.2版本,当前运行的PHP7.0仍然缺少soap扩展。
下面是分步解决方案:
1. 修正php.ini中的错误扩展配置
Linux下的PHP不会识别.dll格式的扩展,你需要先修正这个配置:
- 首先找到PHP7.0对应的php.ini文件,执行命令:
输出里的php7.0 --iniLoaded Configuration File就是你要修改的文件路径。 - 打开该文件,找到类似
extension=php_soap.dll的行,把它注释掉(前面加;),然后添加正确的扩展配置:; extension=php_soap.dll extension=soap - 保存并关闭文件。
2. 添加PHP7.0的软件源并安装对应soap扩展
Ubuntu 18.04默认源只维护PHP7.2及以上版本,要安装PHP7.0的扩展,需要添加第三方PPA源:
- 执行以下命令添加源并更新软件列表:
sudo add-apt-repository ppa:ondrej/php sudo apt update - 现在可以正常安装PHP7.0的soap扩展了:
sudo apt-get install php7.0-soap
3. 重启Web服务器使配置生效
根据你使用的Web服务器类型,执行对应的重启命令:
- 如果是Apache:
sudo systemctl restart apache2 - 如果是Nginx+PHP-FPM:
sudo systemctl restart php7.0-fpm sudo systemctl restart nginx
可选方案:切换到Ubuntu 18.04默认的PHP7.2
如果你没有必须使用PHP7.0的理由,更推荐切换到系统默认支持的PHP7.2,这样后续维护更方便:
- 切换Apache的PHP模块:
sudo a2dismod php7.0 sudo a2enmod php7.2 sudo systemctl restart apache2 - (可选)切换CLI默认PHP版本:
sudo update-alternatives --set php /usr/bin/php7.2
验证SoapClient是否正常启用
执行以下命令检查soap模块是否加载:
php7.0 -m | grep soap
如果输出soap,说明扩展已经成功加载;也可以重新访问你的phpinfo()页面,搜索soap关键词,确认模块已启用。
内容的提问来源于stack exchange,提问作者DrNeo
相关产品推荐
相关产品推荐

