PHP模块显示在phpinfo()中,但不是php -m

时间:2016-11-19 16:43:01

标签: php

我目前正在网站上工作。我用主机的控制面板激活了几个php模块。现在,当我尝试使用它时,它返回

  

致命错误:未找到班级“......”

我检查了phpinfo()并且那些类出现在那里,但当我php -m时,它们就丢失了。服务器使用Nginx。

可能是什么问题以及如何解决?

1 个答案:

答案 0 :(得分:1)

您的PHP Web安装和PHP cli安装可以是两个完全独立的东西,因此它们通常有自己的ini配置文件。

根据您的评论,这是您从CLI phpinfo获得的输出:

Loaded Configuration File: (none) 
Scan for additional .ini files in: /usr/opt/php56/etc/php 
Additional .ini files parsed: (none)

正如您所看到的那样,没有"已加载的配置文件"。根据{{​​3}},您可以指定在运行cli脚本时要加载的ini文件。

由于您的常规网络安装说:

Loaded Configuration File   /home/a2869511/etc/php.ini

然后,您可以使用相同的ini文件自动执行CLI程序:

php --with-config-file-path=/home/a2869511/etc/php.ini script.php

也就是说,我建议您复制一份ini文件,并将其放在cli应用程序查找ini文件的位置,该文​​件位于/usr/opt/php56/etc/php"Scan for additional .ini files in")。

因此,简短的解决方案是进行以下复制:

cp /home/a2869511/etc/php.ini /usr/opt/php56/etc/php/php.ini