在 Plesk 上启用 SOAP

4
这个问题之前已经有人问过,但是没有一个解决方案适合我。我主要参照这个链接:enable SOAP on PHP,但是都没有成功。我有一个 PHP 脚本出现以下错误:
Error message: Fatal error: Class 'SoapClient' not found in /var/www/pathtofile/file.php on line 90

我猜需要在 Plesk 11.0.9 和 CentOS 5.6 (Final) 上安装soap。在php.ini文件中,以下是默认设置:

[soap]
; Enables or disables WSDL caching feature.
soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
soap.wsdl_cache_dir="/tmp"
; (time to live) Sets the number of second while cached file will be used
; instead of original one.
soap.wsdl_cache_ttl=86400

执行 php -i | grep soap 命令,返回结果如下:

'--enable-soap=shared' 

如果我运行 yum install php-soap,我会得到以下结果:

Resolving Dependencies
--> Running transaction check
---> Package php-soap.i386 0:5.1.6-32.el5 set to be updated
--> Processing Dependency: php-common = 5.1.6-32.el5 for package: php-soap
--> Running transaction check
---> Package php-common.i386 0:5.1.6-32.el5 set to be updated
--> Processing Conflict: php53-common conflicts php-common
--> Finished Dependency Resolution
php53-common-5.3.3-13.el5_8.i386 from installed has depsolving problems
  --> php53-common conflicts with php-common
Error: php53-common conflicts with php-common

如果我运行 yum install php53-soap,会得到以下结果:

Resolving Dependencies
--> Running transaction check
---> Package php53-soap.i386 0:5.3.3-5.el5 set to be updated
--> Processing Dependency: php53-common = 5.3.3-5.el5 for package: php53-soap
--> Finished Dependency Resolution
php53-soap-5.3.3-5.el5.i386 from base has depsolving problems
  --> Missing Dependency: php53-common = 5.3.3-5.el5 is needed by package php53-soap-5.3.3-5.el5.i386 (base)
Error: Missing Dependency: php53-common = 5.3.3-5.el5 is needed by package php53-soap-    5.3.3-5.el5.i386 (base)

如果我运行 yum list available | grep soap,我会得到以下结果:
php-soap.i386                            5.1.6-32.el5                     base
php53-soap.i386                          5.3.3-5.el5                      base

如果我运行 yum list available | grep soap,我会得到以下结果:

php53-common-5.3.3-13.el5_8
php53-mysql-5.3.3-13.el5_8
php53-xml-5.3.3-13.el5_8
psa-php53-configurator-1.6.2-cos5.build110120608.16
php5-ioncube-loader-4.0.14-12042719
php53-5.3.3-13.el5_8
php53-mbstring-5.3.3-13.el5_8
php-pear-1.4.9-8.el5
psa11-php-fakepackage-11.0.9-cos5.build110120608.16
php53-pdo-5.3.3-13.el5_8
php53-imap-5.3.3-13.el5_8
php53-sqlite2-5.3.2-11070811
php53-cli-5.3.3-13.el5_8
php53-gd-5.3.3-13.el5_8
php53-devel-5.3.3-13.el5_8

如果我运行 yum list | grep php,我会得到以下结果:
php-pear.noarch                         1:1.4.9-8.el5                  installed
php5-ioncube-loader.i386                4.0.14-12042719                installed
php53.i386                              5.3.3-13.el5_8                 installed
php53-cli.i386                          5.3.3-13.el5_8                 installed
php53-common.i386                       5.3.3-13.el5_8                 installed
php53-devel.i386                        5.3.3-13.el5_8                 installed
php53-gd.i386                           5.3.3-13.el5_8                 installed
php53-imap.i386                         5.3.3-13.el5_8                 installed
php53-mbstring.i386                     5.3.3-13.el5_8                 installed
php53-mysql.i386                        5.3.3-13.el5_8                 installed
php53-pdo.i386                          5.3.3-13.el5_8                 installed
php53-sqlite2.i386                      5.3.2-11070811                 installed    
php53-xml.i386                          5.3.3-13.el5_8                 installed
psa-php53-configurator.i386             1.6.2-cos5.build110120608.16   installed
psa11-php-fakepackage.i386              11.0.9-cos5.build110120608.16  installed
graphviz-php.i386                       2.12-8.el5.centos              extras
php.i386                                5.1.6-32.el5                   base
php-bcmath.i386                         5.1.6-32.el5                   base
php-cli.i386                            5.1.6-32.el5                   base
php-common.i386                         5.1.6-32.el5                   base
php-dba.i386                            5.1.6-32.el5                   base
php-dbase.i386                          5.1.6-15.el5.centos.1          extras
php-devel.i386                          5.1.6-32.el5                   base
php-gd.i386                             5.1.6-32.el5                   base
php-imap.i386                           5.1.6-32.el5                   base
php-ldap.i386                           5.1.6-32.el5                   base
php-mbstring.i386                       5.1.6-32.el5                   base
php-mcrypt.i386                         5.1.6-15.el5.centos.1          extras
php-mhash.i386                          5.1.6-15.el5.centos.1          extras
php-mssql.i386                          5.1.6-15.el5.centos.1          extras
php-mysql.i386                          5.1.6-32.el5                   base
php-ncurses.i386                        5.1.6-32.el5                   base
php-odbc.i386                           5.1.6-32.el5                   base
php-pdo.i386                            5.1.6-32.el5                   base
php-pear-Auth-SASL.noarch               1.0.2-4.el5.centos             extras
php-pear-DB.noarch                      1.7.13-1.el5.centos            extras
php-pear-Date.noarch                    1.4.7-2.el5.centos             extras
php-pear-File.noarch                    1.2.2-1.el5.centos             extras
php-pear-HTTP-Request.noarch            1.4.2-1.el5.centos             extras
php-pear-Log.noarch                     1.9.13-1.el5.centos            extras
php-pear-MDB2.noarch                    2.4.1-2.el5.centos             extras
php-pear-MDB2-Driver-mysql.noarch       1.4.1-3.el5.centos             extras
php-pear-Mail.noarch                    1.1.14-1.el5.centos            extras
php-pear-Mail-Mime.noarch               1.4.0-1.el5.centos             extras
php-pear-Net-SMTP.noarch                1.2.10-1.el5.centos            extras
php-pear-Net-Sieve.noarch               1.1.5-2.el5.centos             extras
php-pear-Net-Socket.noarch              1.0.8-1.el5.centos             extras
php-pear-Net-URL.noarch                 1.0.15-1.el5.centos            extras
php-pecl-Fileinfo.i386                  1.0.4-3.el5.centos             extras
php-pecl-memcache.i386                  2.2.3-1.el5_2                  extras
php-pgsql.i386                          5.1.6-32.el5                   base
php-readline.i386                       5.1.6-15.el5.centos.1          extras
php-snmp.i386                           5.1.6-32.el5                   base
php-soap.i386                           5.1.6-32.el5                   base
php-tidy.i386                           5.1.6-15.el5.centos.1          extras
php-xml.i386                            5.1.6-32.el5                   base
php-xmlrpc.i386                         5.1.6-32.el5                   base
php53-bcmath.i386                       5.3.3-5.el5                    base
php53-dba.i386                          5.3.3-5.el5                    base
php53-intl.i386                         5.3.3-5.el5                    base
php53-ldap.i386                         5.3.3-5.el5                    base
php53-odbc.i386                         5.3.3-5.el5                    base
php53-pgsql.i386                        5.3.3-5.el5                    base
php53-process.i386                      5.3.3-5.el5                    base
php53-pspell.i386                       5.3.3-5.el5                    base
php53-snmp.i386                         5.3.3-5.el5                    base
php53-soap.i386                         5.3.3-5.el5                    base
php53-xmlrpc.i386                       5.3.3-5.el5                    base

有没有关于如何修复这个SOAP问题的想法?

你安装了哪个PHP版本?看起来你混淆了PHP 5.3和PHP < 5.3。 - Louis Huppenbauer
根据 Plesk,它是 5.3.3-13.el5_8 版本。 - malta
没有可用的 php35-soap 软件包。你不小心把3和5搞反了。你确定这不是问题所在,并且已经使用正确的软件包执行了yum吗? - Louis Huppenbauer
谢谢指出那个错字 - 我今天早上已经很累了 :) 解决依赖关系 --> 运行事务检查 ---> 软件包 php53-soap.i386 0:5.3.3-5.el5 已设置为更新 --> 处理依赖关系: php53-common = 5.3.3-5.el5 用于软件包: php53-soap --> 完成依赖关系解析 来自 base 的 php53-soap-5.3.3-5.el5.i386 存在依赖关系问题 --> 缺失的依赖关系:php53-common = 5.3.3-5.el5 是由软件包 php53-soap-5.3.3-5.el5.i386 (base) 需要的 错误:缺失的依赖关系:php53-common = 5.3.3-5.el5 是由软件包 php53-soap-5.3.3-5.el5.i386 (base) 需要的 - malta
1个回答

4
根本问题在于,由于某种原因,您所访问的存储库有SOAP扩展的版本5.3.3-5.el5,但是您的PHP的其余部分却是较新的版本5.3.3-13.el5_8。
这似乎没有什么道理,因为我在官方CentOS存储库中看到-13.el5_8是所有PHP模块(包括SOAP)的当前版本。
您可能需要执行sudo yum clean all,确保您的存储库列表是最新的并且使用了正确的来源。如果不是因为您正在运行控制面板套件,我还建议您执行普通的sudo yum update,但我不确定Plesk是否支持此操作。
如果事实证明您实际上正在使用经过Plesk批准的存储库,则需要告诉他们加快进度。

这是服务提供商(godaddy)的响应 - 您可能需要添加其他存储库以检索特定版本,但这不是我们能够协助的事情。此页面有更多信息 - http://wiki.centos.org/AdditionalResources/Repositories。我是否应该尝试使用**sudo yum clean all** - 这是一个实时环境 - 它会影响用户吗? - malta
不,清理各种缓存位不应影响用户。 - Charles
谢谢@Charles,运行sudo yum clean all之后我需要做些其他的事情吗?我需要安装/使用yum吗? - malta
我运行了命令,然后再次尝试安装命令。同样的错误:base 中的 php53-soap-5.3.3-5.el5.i386 存在依赖解决问题。 - malta
1
我建议使用wget下载RPM文件,然后执行yum install ./whatever.rpm来安装,而不是直接使用rpm工具。这样,如果还有其他缺失的部分,yum会提示。 - Charles
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接