80

这就是问题所在。我在 Apache 上安装了 PHP 5.2.9,但无法升级 PHP。我有办法在 PHP 5.2.9 中启用 SOAP 吗?当 PHP 手册说“要启用 SOAP 支持,请使用 --enable-soap 配置 PHP”时,它根本没有帮助。我该如何配置?

4

3 回答 3

183

让 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-soapphp-nusoap. php-soap通常是使用--enable-soap.

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

$ sudo apt-get install php-soap

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

$ sudo yum install php-soap

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

于 2012-07-20T18:27:06.793 回答
13

如果您的机器中有 Ubuntu,以下步骤将对您有所帮助:

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

在此处输入图像描述

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

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

  3. 在步骤 1 中再次检查使用您的 php 测试文件似乎是我的。

于 2017-07-06T11:45:54.740 回答
6

就您的问题而言:不,如果激活 from.ini还不够,并且您无法升级 PHP,那么您无能为力。一些模块,但不是全部,可以在不重新编译的情况下添加(zypper install php5-soap, yum install php-soap)。如果还不够,请尝试安装一些 PEAR 类以支持解释型 SOAP(NuSOAP 等)。

通常,双破折号--switches设计用于从头开始重新编译 PHP。

您将下载 PHP 源包(例如,作为压缩的.tgztarball),将其展开到某处,然后,例如在 Linux 下,运行配置脚本

./configure --prefix ...

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

也就是说,如果您不熟悉 PHP 重新编译,请不要这样做。它还需要几个您可能拥有或不拥有的辅助库 - freetype, gd, libjpeg, XML, expat, 等等(仅安装它们是不够的;它们必须是开发人员版本,即带有标题等;在大多数发行版中,libjpeg安装可能还不够,您可能libjpeg-dev还需要)。

为了重新编译的目的,我必须保留一个单独的虚拟机,其中安装了所有东西。

于 2012-07-20T18:02:49.247 回答