要用到 SoapClient, new 了一個(gè)提示 Class ‘SoapClient' not found, 檢查了下 phpinfo, 原因是當(dāng)初沒有編譯這個(gè)擴(kuò)展, 只好現(xiàn)在再加上了。
php在調(diào)用webservice時(shí),報(bào)告如下類似錯(cuò)誤:
( ! ) Fatal error: Class 'SoapClient' not found in E:/WebSrv/CI/system/libraries/WebService.php on line 17
解決方法:
打開php.ini,找到php_soap.dll , 把前面的分號(hào)去掉
;extension=php_soap.dll
前提是,已經(jīng)安裝了 php_soap.dll
筆者的 PHP 安裝在 /usr/local/php/ 目錄下,如果沒有安裝可以參考下面的方法
- $ cd /home/downloads/php-5.6.12 # 進(jìn)入到 PHP 源碼目錄
- $ cd ext/soap # 進(jìn)入 soap 擴(kuò)展目錄
- $ /usr/local/php/bin/phpize # 準(zhǔn)備添加擴(kuò)展
- $ ./configure -with-php-config=/usr/local/php/bin/php-config --enable-soap # 啟用 SOAP
- $ make
- $ make install
擴(kuò)展安裝完成后提示擴(kuò)展已安裝到這個(gè)目錄下:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
編輯 php.ini 文件, 啟用 extension_dir 擴(kuò)展目錄, 添加 soap.so 擴(kuò)展:
- ; Directory in which the loadable extensions (modules) reside.
- ; http://php.net/extension-dir
- extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
- ; On windows:
- ; extension_dir = "ext"
- extension=soap.so # 添加 SOAP 擴(kuò)展
重啟 php-fpm 使生效
- kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
Windows 下編輯 php.ini 取消該行注釋即可
extension=php_soap.dll