ChatGPT解决这个技术问题 Extra ChatGPT

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

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

您是否从预制包安装了 php?检查您的发行版的存储库,看看是否有可用的肥皂包。
不,我没有安装它。我希望编辑 php.ini 是启用 SOAP 所需的全部内容。但似乎它需要更多的东西。
你的发行版是什么?您可能可以避免从源代码配置和编译 PHP。您很可能可以安装一个软件包。
如果是你的机器,真的没有“无法升级PHP”之类的东西。最坏的情况是,您从源代码构建并将其粘贴在 /usr/local 或其他地方。
操作系统是 Fedora (linux 2.6.27.41-170.2.117.fc10.i686 gnome 2.24.3

g
ghbarratt

让 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-nusoapphp-soap 通常是您通过使用 --enable-soap 配置 PHP 所获得的。

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

$ sudo apt-get install php-soap

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

$ sudo yum install php-soap

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


我安装了它,当我运行命令行时: php -i | grep -i 肥皂。我得到soap Soap Client => 启用Soap Server => 启用soap.wsdl_cache => 1 => 1 soap.wsdl_cache_dir => /tmp => /tmp soap.wsdl_cache_enabled => 1 => 1 soap.wsdl_cache_limit => 5 => 5 肥皂.wsdl_cache_ttl => 86400 => 86400。但我不知道你上面提到的ini文件的位置。我在 /etc/php5/{cgi, cli, fpm} 中添加了它,但它不起作用。 /usr/lib/php5/module 中没有soap.so,/etc/php5/conf.d/ 中没有soap.ini 文件
dnf install php-soap 今天在 32 位 Fedora 22 上运行良好。
对于 PHP7:apt-get install php7.0-soap
在带有 PHP7.0 的 Ubuntu 16.04 上运行 apt-get install php-soap 仍然对我有用。
对于 PHP 5.6,需要运行这个 cmd:sudo apt-get install php5.6-soap
N
Noha Salah

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

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

https://i.stack.imgur.com/uwhrj.png

打开终端并粘贴:sudo apt-get install php-soap。在终端中重新启动您的 apache2 服务器: service apache2 restart。在步骤 1 中再次检查使用您的 php 测试文件似乎是我的。


如果您在步骤 2 中有 Ubuntu 版本 16.04,您只能输入:sudo apt install php-soap。
如果您的 PHP 在 FHM 下运行,那么您可能还需要 sudo service php-fpm restart,就像我在 AWS 上所做的那样
L
LSerni

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

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

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

./configure --prefix ...

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

也就是说,如果您不熟悉 PHP 重新编译,不要这样做。它还需要几个您可能有也可能没有的辅助库 - freetypegdlibjpegXMLexpat 等等(它们还不够em>已安装;它们必须是开发者版本,即带有标题等;在大多数发行版中,安装 libjpeg 可能还不够,您可能需要 libjpeg-dev还)。

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