这就是问题所在。我在Apache上有PHP 5.2.9,我无法升级PHP。有没有办法让我在PHP 5.2.9中启用SOAP? PHP手册没有任何帮助,它说,“要启用SOAP支持,请使用--enable-soap配置PHP。”我该如何配置?
答案 0 :(得分:139)
获取SOAP通常不需要从源代码编译PHP。我建议只尝试作为最后一个选项。
为了更好地衡量,请检查您的phpinfo对SOAP扩展的说法(如果有的话):
$ php -i | grep -i soap
确保它是缺少的PHP扩展。
假设您在phpinfo中没有看到任何关于SOAP的信息,请参阅哪些PHP SOAP包可供您使用。
在Ubuntu / Debian中,您可以搜索:
$ apt-cache search php | grep -i soap
或在RHEL / Fedora中,您可以搜索:
$ yum search php | grep -i soap
通常有两个PHP SOAP包可供您使用,通常是php-soap
和php-nusoap
。 php-soap
通常是使用--enable-soap
配置PHP所能获得的。
在Ubuntu / Debian中,您可以安装:
$ sudo apt-get install php-soap
或者在RHEL / Fedora中,您可以安装:
$ sudo yum install php-soap
安装后,您可能需要放置一个ini文件并重新启动Apache。
答案 1 :(得分:6)
就你的问题而言:不,如果从.ini
激活是不够的,你无法升级PHP,那么你无能为力。可以添加一些模块,但不是全部,无需重新编译(zypper install php5-soap
,yum install php-soap
)。如果还不够,请尝试安装一些PEAR类来解释SOAP支持(NuSOAP等)。
通常,双击--switches
旨在从头开始重新编译PHP时使用。
您可以下载PHP源代码包(作为压缩的.tgz
tarball,比如说),将其展开到某处然后,例如在Linux下,运行configure脚本
./configure --prefix ...
PHP使用的configure
命令可能会显示phpinfo()
。重复它相同应该给你一个你现在安装的PHP的精确副本。然后,添加--enable-soap
将启用SOAP以及其他所有内容。
那就是说,如果你不熟悉PHP重新编译,那么不要这样做。它还需要您可能或可能没有的几个辅助库 - freetype
,gd
,libjpeg
,XML
,expat
等等等等(它们安装是不够的;它们必须是开发人员版本,即带有标题等等;在大多数发行版中,安装了libjpeg
可能还不够,您可能还需要libjpeg-dev
。
为了我的重新编译目的,我必须保留一个单独的虚拟机,其中包含所有内容。
答案 2 :(得分:5)