最近把服务器搬到了腾讯云,发现微信支付的二维码无法显示,本来以为是自己微信支付配置参数出了问题,结果官方的demo也不显示二维码,才知道应该是web服务器的问题。
网上找了很多办法,都不起作用,只能开启WordPress的调试模式,一个问题一个问题的Google,终于解决了问题。总结起来,就是php缺少三个扩展,记录一下:
错误提示1
Fatal error: Uncaught Error: Call to undefined function curl_init() in /var/www/main/wp-content/plugins/erphpdown/payment/weixin/lib/WxPay.Api.php:531 Stack trace: #0 /var/www/main/wp-content/plugins/erphpdown/payment/weixin/lib/WxPay.Api.php(62): WxPayApi::postXmlCurl('GetPayUrl(Object(WxPayUnifiedOrder)) #3 {main} thrown in /var/www/main/wp-content/plugins/erphpdown/payment/weixin/lib/WxPay.Api.php on line 531
安装curl模块
sudo apt-get install php-curl -y
错误提示2
PHP Fatal error: Uncaught Error: Call to undefined function simplexml_load_string()
安装xml模块
apt-get install php-xml -y
错误提示3
安装完以上两个模块后二维码仍然不显示,安装gd模块是根据以前的经验,因为即使没有安装gd模块,WordPress在debug模式下也不会报错。
安装gd模块
apt-get install php-gd -y
安装完每个模块之后记得重启apache服务器
systemctl restart apache2