我正在尝试一个简单的web服务示例,即使我在php.ini文件中未注释extension=php_soap.dll,我也会得到这个错误:
致命错误:类'SoapClient'没有在C:\Program Files (x86)\ EasyPHP-5.3.9\www\server.php第2行找到
我正在尝试一个简单的web服务示例,即使我在php.ini文件中未注释extension=php_soap.dll,我也会得到这个错误:
致命错误:类'SoapClient'没有在C:\Program Files (x86)\ EasyPHP-5.3.9\www\server.php第2行找到
当前回答
我在phpinfo()中找不到SOAP部分,所以我必须安装它。
有关信息,SOAP扩展需要libxml PHP扩展。这意味着根据http://php.net/manual/en/soap.requirements.php,还需要传入——enable-libxml
来自WHM面板
软件»模块安装程序»PHP扩展和应用程序包 安装SOAP 0.13.0 警告:"pear/HTTP_Request"已弃用,改为"pear/HTTP_Request2" 安装ok: channel://pear.php.net/SOAP-0.13.0 安装HTTP_Request2(可选) 安装ok: channel://pear.php.net/HTTP_Request2 重启服务»HTTP服务器(Apache)
从shell命令
1.pear安装SOAP
2.重新启动
其他回答
诊断
在脚本文件中查找以下内容
phpinfo();
如果你不能找到Soap客户端设置为启用如下:
Fix
做以下几点:
在apache bin文件夹中找到php.ini,即apache /bin/php.ini 移除;从extension=php_soap.dll开始 重新启动Apache服务器 查找phpinfo();再次检查你是否看到了与上面相似的图片 如果你这么做了,问题就解决了!
另一方面,如果这不能解决您的问题,您可能需要检查这里的SOAP需求。你也可以在评论区找到连接https的好建议。
你必须继承nusoop。php类并把它放到你的项目目录中,你可以从网上下载。
使用以下代码:
require_once('nusoap.php');
用于PHP 7.4和Docker 在Dockerfile中添加这一行:
RUN apt-get update && apt-get install -y \
libxml2-dev \
RUN docker-php-ext-install soap
重新构建映像并重新启动;)
对于PHP 8:
sudo apt update
sudo apt-get install php8.0-soap
对于AWS (RHEL):
sudo yum install php56-soap
(56这里是5.6 PHP版本-把你的版本放在这里)。