为了使 PHP 5.3.3 的 SOAP 客户端正常运行,我们的 Centos 服务器遇到了很大的问题。
我们的一位客户向我们报告说,他们在使用服务器上的某些 Web 服务时遇到了问题。他们是第一个注意到 SOAP 模块显然没有安装的人。
当你执行 php -v 时,很快就会出现这些错误:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/fileinfo.so' - /usr/lib64/php/modules/fileinfo.so: undefined symbol: zval_property_ctor in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/soap.so' - /usr/lib64/php/modules/soap.so: undefined symbol: zval_property_ctor in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/sqlite.so' - /usr/lib64/php/modules/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/zip.so' - /usr/lib64/php/modules/zip.so: undefined symbol: zval_property_ctor in Unknown on line 0
如您所见,四个模块显然由于同一问题而失败。至少,它们显示的错误完全相同。目前,SOAP 模块是我们最关心的。
yum 的 Repo 列表显示:
[root@XXX ~]# yum repolist
Loaded plugins: fastestmirror, replace, security
Loading mirror speeds from cached hostfile
* atomic: www7.atomicorp.com
* base: mirror.ovh.net
* epel: mirror.de.leaseweb.net
* extras: mirror.ovh.net
* ius: ftp.rediris.es
* updates: mirror.ovh.net
我读到,为了使此 SOAP 客户端正常工作,还应启用 JSON 支持。如果我启动“php -m | grep json”或“php -m | grep soap”,则什么也得不到。
我认为安装 php-json 可能会解决这个问题,因此我尝试:
[root@XXX ~]# yum install php-pecl-json
Loaded plugins: fastestmirror, replace, security
Loading mirror speeds from cached hostfile
* atomic: www7.atomicorp.com
* base: mirror.ovh.net
* epel: mirror.de.leaseweb.net
* extras: mirror.ovh.net
* ius: ftp.rediris.es
* updates: mirror.ovh.net
Setting up Install Process
Package php-pecl-json is obsoleted by php-common, trying to install php-common-5.3.19- 12.el5.art.x86_64 instead
Package php-common-5.3.19-12.el5.art.x86_64 already installed and latest version
Nothing to do
正如您所看到的,存在与 php-common 的冲突,而 php-common 据称已经包含 php-json。
如有任何帮助我将非常感激。