嗨,我有这个错误的问题:PHP警告:模块'soap'已经在第0行的未知中加载
我在媒体圣殿上运行vps。我从他们的知识库中得到了一些指示,并按照描述进行了操作。然而,为了查看SOAP是否正确安装,我转到命令行并运行"pearlist",这就是我得到的。
PHP Warning: Module 'soap' already loaded in Unknown on line 0
Installed packages, channel pear.php.net:
=========================================
Package Version State
Archive_Tar 1.3.11 stable
Console_Getopt 1.3.1 stable
PEAR 1.9.4 stable
Structures_Graph 1.0.4 stable
XML_Util 1.2.1 stable
[root@w8ld-gg7p ~]# rep extension /usr/local/lib/php.ini
-bash: rep: command not found
[root@w8ld-gg7p ~]#
有人能告诉我我做错了什么吗?首先,它不会在已安装的包列表中加载SOAP。第二,我在未知错误中加载了SOAP。
我是一个新手,所以任何帮助都将不胜感激!非常感谢。
在其中一个文件中注释扩展名=soap:
例如=在您的Xampp(php.ini)中
;extension=soap
看起来像是多次加载"soap"模块应该使用grep extension /usr/local/lib/php.ini
来搜索加载了的模块,而不是rep extension /usr/local/lib/php.ini
如果你的ini在不同的位置,你需要找到它在哪里。
-
如果你从网页上得到PHP警告,你可以用这个创建一个文件作为内容:
<?php phpinfo(); ?> in your browser, search for "Loaded Configuration File" and "Scan this dir for additional .ini files"
-
如果在shell上运行PHP时收到PHP警告,请在外壳:
php -r "phpinfo();" | awk '/^Loaded|^Scan/ {print $NF}'
取决于您的安装,除了php.ini之外,php.d中可能还有ini文件
对于我的红帽子服务器:
注意:打包的扩展模块现在通过.ini文件加载
在目录/etc/php.d中找到;这些都是默认加载的。
转到:/etc/php/7.0/cli/conf.d/
然后:
ls | grep soap
将列出两个文件:
- 20-soap.ini
- 40-soap.ini
在其中一个文件中注释扩展名=soap.so:
;extension=soap.so
完成。
如果您正在使用Docker,请在您的/workspace/Dockerfle:中评论以下行
echo "extension=soap.so" >> /etc/php/7.0/cli/conf.d/40-soap.ini
我在mbstring模块上遇到了类似的问题。由于我们有两个php.ini文件,一个在apache2中,另一个在cli中。您应该只在一个php.ini中取消注释(并因此加载);extension=php_soap.dll(so)这应该会抑制警告。