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

如何在linux上启用php中的soap?,php,linux,soap,fedora,Php,Linux,Soap,Fedora,这就是问题所在。我在Apache上安装了PHP5.2.9,无法升级PHP。我有没有办法在PHP5.2.9中启用SOAP?当PHP手册说“要启用SOAP支持,请使用--enable SOAP配置PHP”时,它一点帮助都没有 至于您的问题:不,如果从.ini激活还不够,并且您无法升级PHP,那么您就无能为力了。某些模块(但不是全部模块)可以在不重新编译的情况下添加(zypper install php5 soap,yum install php soap)。如果还不够,请尝试安装一些PEAR类以支持

这就是问题所在。我在Apache上安装了PHP5.2.9,无法升级PHP。我有没有办法在PHP5.2.9中启用SOAP?当PHP手册说“要启用SOAP支持,请使用--enable SOAP配置PHP”时,它一点帮助都没有

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

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

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

./configure --prefix ...
PHP使用的
configure
命令可能与
phpinfo()
一起显示。重复它会给你一个你现在安装的PHP的精确副本。添加
--enable soap
将启用soap以及其他功能

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


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

让SOAP正常工作通常不需要从源代码处编译PHP。我建议您仅作为最后一个选项来尝试

为了更好地衡量,请查看您的phpinfo对SOAP扩展的看法:

$ php -i | grep -i soap
以确保缺少的是PHP扩展

假设您在phpinfo中没有看到任何关于SOAP的内容,那么可以查看哪些PHP-SOAP包对您可用

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

$ apt-cache search php | grep -i soap
$ yum search php | grep -i soap
或者在RHEL/Fedora中,您可以搜索:

$ apt-cache search php | grep -i soap
$ yum search php | grep -i soap
通常有两个PHP SOAP包可供您使用,通常是
PHP SOAP
PHP nusoap
PHP SOAP
通常是使用
--启用SOAP
配置PHP所得到的

在Ubuntu/Debian中,您可以使用以下工具安装:

$ sudo apt-get install php-soap
$ sudo yum install php-soap
或者在RHEL/Fedora中,您可以使用以下设备安装:

$ sudo apt-get install php-soap
$ sudo yum install php-soap

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

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

  • 首先使用phpinfo()在php测试文件中检查是否有soap(客户机/服务器);并在浏览器中检查结果。 如果您有它,它将看起来像下图(如果没有,请转到步骤2):
  • 打开终端并粘贴:sudo apt get install php soap

  • 在终端:service apache2 Restart中重新启动apache2服务器

  • 在第1步中,再次检查使用php测试文件是否与我的相同


  • 您是从预先制作的软件包安装php的吗?检查您的发行版的respositor并查看是否有可用的soap软件包。不,我没有安装它。我希望编辑php.ini是启用soap所需的全部。但它似乎需要更多。您的发行版是什么?您可能可以避免从源代码配置和编译php。有很可能是一个你可以安装的软件包。如果是你的机器,就没有“无法升级PHP”这样的事情。最坏的情况是,你从源代码构建,然后将其插入/usr/local或其他什么东西。操作系统是Fedora(linux 2.6.27.41-170.2.117.fc10.i686 gnome 2.24.3i安装了它,当我运行命令行时:php-i | grep-i soap.i获取soap客户端=>启用的soap服务器=>启用的soap.wsdl(缓存=>1=>1 soap.wsdl(缓存)目录=>/tmp=>/tmp soap.wsdl(缓存)启用的soap.wsdl(缓存)上限=>5=>5 soap.wsdl(缓存)ttl=>86400=>86400)。但是我不知道上面提到的ini文件的位置,我在/etc/php5/{cgi,cli,fpm}中添加了它但是它不起作用。没有soap.so/usr/lib/php5/module或soap.ini文件/etc/php5/conf.d/
    dnf install php-soap
    在32位的今天工作得很好,Fedora 22。对于PHP7:
    apt get install PHP7.0-soap
    在一个PHP7.0的Ubuntu 16.04上运行
    apt get install php-soap
    对我仍然有效。对于php5.6,需要取消此cmd:sudo-apt-get-install php5.6-soap如果在步骤2中有Ubuntu版本16.04,则只能键入:sudo-apt-install php-soap。如果您的php在FHM下运行,那么您可能还需要像我在AWS上所做的那样重新启动
    sudo服务php fpm