要用到 SoapClient,new 了一个提示 Class ‘SoapClient' not found,检查了下 PHPinfo,原因是当初没有编译这个扩展,只好现在再加上了。
( ! ) Fatal error: Class 'SoapClient' not found in E:/WebSrv/CI/system/libraries/WebService.PHP on line 17
解决方法:
打开PHP.ini,找到PHP_soap.dll , 把前面的分号去掉
;extension=PHP_soap.dll
前提是,已经安装了 PHP_soap.dll
笔者的 PHP 安装在 /usr/local/PHP/ 目录下,如果没有安装可以参考下面的方法
PHP-5.6.12 # 进入到 PHP 源码目录
$ cd ext/soap # 进入 soap 扩展目录
$ /usr/local/PHP/bin/PHPize # 准备添加扩展
$ ./configure -with-PHP-config=/usr/local/PHP/bin/PHP-config --enable-soap # 启用 SOAP
$ make
$ make install
扩展安装完成后提示扩展已安装到这个目录下:
Installing shared extensions: /usr/local/PHP/lib/PHP/extensions/no-debug-non-zts-20131226/
编辑 PHP.ini 文件,启用 extension_dir 扩展目录,添加 soap.so 扩展:
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 扩展
重启 PHP-fpm 使生效
PHP/var/run/PHP-fpm.pid`
Windows 下编辑 PHP.ini 取消该行注释即可
extension=PHP_soap.dll