解决 PHP Class ‘SoapClient’ not found

八月 27, 2017 9:08 下午 发布者 评论

要用到 SoapClient, new 了一个提示 Class ‘SoapClient’ not found, 检查了下 phpinfo, 原因是当初没有编译这个扩展, 只好现在再加上了。

笔者的 PHP 安装在 /usr/local/php/ 目录下

$ cd /home/downloads/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 扩展:

; 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 扩展

重启 php-fpm 使生效

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

Windows 下编辑 php.ini 取消该行注释即可

extension=php_soap.dll

作者 wid

发表评论

电子邮件地址不会被公开。 必填项已用*标注