在Ubuntu 16中缺少php_soap.dll

7

我正在尝试在Ubuntu 16上安装Composer。

curl -sS https://getcomposer.org/installer | php

并收到警告:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_soap.dll' - /usr/lib/php/20151012/php_soap.dll: cannot open shared object file: No such file or directory in Unknown on line 0
All settings correct for using Composer
Downloading 1.2.0...
Composer successfully installed to: //composer.phar
Use it: php composer.phar

我使用以下方法安装了SOAP:

sudo apt-get install php-soap

在目录/usr/lib/php/20151012/php_soap.dll中实际上没有这个文件。

执行php -i | grep -i soap后:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_soap.dll' - /usr/lib/php/20151012/php_soap.dll: cannot open shared object file: No such file or directory in Unknown on line 0
/etc/php/7.0/cli/conf.d/20-soap.ini,
soap
Soap Client => enabled
Soap Server => enabled
soap.wsdl_cache => 1 => 1
soap.wsdl_cache_dir => /tmp => /tmp
soap.wsdl_cache_enabled => 1 => 1
soap.wsdl_cache_limit => 5 => 5
soap.wsdl_cache_ttl => 86400 => 86400

如何解决与php_soap.dll有关的问题?

1
抱歉,我的错。如果你正在使用Linux,为什么会有PHP模块的.dll文件?据我所知,模块的扩展名是.so... 你是从任何网站复制粘贴配置规则吗? - anatoli
这是一个好问题。我不知道。我刚刚尝试在Ubuntu上安装composer,并粘贴了出现在我的控制台窗口中的信息。 - Tomasz
php.ini 中不存在 soap.ini。我应该输入吗?/etc/php/7.0/cli/conf.d/ 中存在 20-soap.ini - Tomasz
1
让我们在聊天中继续这个讨论 - Tomasz
请告诉我您是否仍需要在此处或聊天中寻求帮助。 - anatoli
显示剩余4条评论
2个回答

11

首先尝试使用以下命令搜索提到的.dll文件的位置

grep -r "soap.dll" /etc/php/7.0/cli/
如果您从命令中得到任何匹配项,请在它们之前搜索;。如果没有,请打开文件并注释掉这些行e。

Translated: 如果您从命令中得到任何匹配项,请在它们之前搜索 ;。如果没有,请打开文件并注释掉这些行e。
nano /etc/php/7.0/cli/php.ini

然后按下ctrl+W打开搜索,将您要搜索的字符串粘贴进去,例如本例中的soap.dll,这样就可以找到该字符串所在的行。在其前面加上;,使用ctrl+X保存文件,接着按Yenter

尝试运行php -i | grep -i soap,看看是否仍然存在任何错误。


我给了一个赞,但是想告诉你保存命令应该是ctrl + x,然后是y和回车。 - KyleBunga

-1

运行这两个命令

sudo apt-get update
sudo apt-get upgrade

它将修复PHP软件包问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接