遇到的问题
当我们结账的时候点击付款,发现付款失败,提示说:“处理您的订单时出错。 再次下单前,请检查您的付款方式中是否有任何费用,查看您的订单历史记录”。查看终端,显示报错:“net::ERR_NETWORK_CHANGED“。当我们查看 WooCommerce 的系统状态时,提示说 SoapClient 未开启,这时候我们把 SoapClint 开启就可以解决问题了,那 WordPress 安装在 Docker 中,怎么开启 SoapClinat 呢?下面是解决办法。
解决的办法
通过终端进入进入 docker 容器
sudo docker exec -it wordpress /bin/bash
查询容器内有没有 php.ini 文件
php --ini
如果没有查到该文件的话,输入以下命令,通过复制 php.ini-development 生成一个php.ini 文件,如果有 php.ini 文件则不用
cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini
安装 libxml2-dev
apt-get update -yqq && apt-get -y install libxml2-dev
安装 Soap
docker-php-ext-install soap
安装编辑 php.ini 配置文件的软件 vim
apt-get update && apt-get install vim
编辑 php.ini 配置文件
vim /usr/local/etc/php/php.ini
找到以下代码
;extension=soap in php.ini
把代码前面的注释符号分号去掉,变成这样
extension=soap in php.ini
按键盘 ESC 退出键盘,输入以下内容进行退出并保存
:wq
重启服务器
apache2ctl restart
这样应该就可以了。