如何在Linux上启用php中的--enable-soap?

net*_*rox 63 php linux soap fedora

这就是问题所在.我在Apache上有PHP 5.2.9,我无法升级PHP.有没有办法让我在PHP 5.2.9中启用SOAP?PHP手册没有任何帮助,它说,"要启用SOAP支持,请使用--enable-soap配置PHP." 我该如何配置?

ghb*_*att 147

获取SOAP通常不需要从源代码编译PHP.我建议只尝试作为最后一个选项.

为了更好地衡量,请检查您的phpinfo对SOAP扩展的说法(如果有的话):

$ php -i | grep -i soap
Run Code Online (Sandbox Code Playgroud)

确保它是缺少的PHP扩展.

假设您在phpinfo中没有看到任何关于SOAP的信息,请参阅哪些PHP SOAP包可供您使用.

在Ubuntu/Debian中,您可以搜索:

$ apt-cache search php | grep -i soap
Run Code Online (Sandbox Code Playgroud)

或者在RHEL/Fedora中,您可以搜索:

$ yum search php | grep -i soap
Run Code Online (Sandbox Code Playgroud)

通常有两种PHP SOAP封装提供给您,通常是php-soapphp-nusoap.php-soap通常是配置PHP的方法--enable-soap.

在Ubuntu/Debian中,您可以安装:

$ sudo apt-get install php-soap
Run Code Online (Sandbox Code Playgroud)

或者在RHEL/Fedora中,您可以安装:

$ sudo yum install php-soap
Run Code Online (Sandbox Code Playgroud)

安装后,您可能需要放置一个ini文件并重新启动Apache.

  • 对于PHP7:`apt-get install php7.0-soap` (14认同)

LSe*_*rni 6

至于你的问题:不,如果激活.ini是不够的,你不能升级PHP,你可以做的并不多.可以添加一些模块,但不是全部,无需重新编译(zypper install php5-soap,yum install php-soap).如果还不够,请尝试安装一些PEAR类以获得解释性SOAP支持(NuSOAP等).

通常,双破折号--switches旨在从头开始重新编译PHP时使用.

您可以下载PHP源代码包(比如压缩.tgztarball),将其扩展到某处,然后在Linux下运行configure脚本

./configure --prefix ...
Run Code Online (Sandbox Code Playgroud)

configure您的PHP使用的命令可能会显示phpinfo().重复它相同应该给你一个你现在安装的PHP的精确副本.--enable-soap然后添加将启用SOAP以及其他所有内容.

也就是说,如果您不熟悉PHP重新编译,请不要这样做.这还需要一些辅助库,你可能会,也可能不会,有可用的- ,freetype,gd,libjpeg,XML,expat等等等等(这还不够,他们被安装 ;他们必须是一个开发者版本,即与头部等;在大多数发行版中,libjpeg安装可能还不够,您可能libjpeg-dev还需要).

我必须保留一个单独的虚拟机,其中包含所有安装的虚拟机以供我重新编译.


Noh*_*lah 6

如果您的计算机中有Ubuntu,以下步骤将帮助您:

  1. 如果您有使用soap(客户端/服务器)或不使用phpinfo(),请先检查您的php测试文件; 并在浏览器中检查结果.如果您拥有它,它将看起来像下面的图像(如果没有转到第2步):

在此输入图像描述

  1. 打开终端并粘贴:sudo apt-get install php-soap.

  2. 在终端重新启动apache2服务器:service apache2 restart.

  3. 要检查再次使用你的php测试文件在步骤1中看起来像我的.