PHP扩展已安装但未加载


PHP extension installed but not loading

我正在尝试安装php的ssh2扩展,但遇到了一点困难。文件就在那里,只是没有加载到php中。

首先,我安装了ssh2,带有:

 aptitude install libssh2-1-dev libssh2-php

(值得一提的是,我在Nginx上运行Ubuntu 12.04。)

我可以看到ssh2是使用modules命令加载的:

php -m |grep ssh2
ssh2

然而,当我运行代码时,我会得到一个未定义的函数错误。

在我的phpinfo()脚本中,我可以看到我的php安装扫描该目录以查找其他ini文件:/etc/php5/fpm/conf.d。列出该目录的内容,我可以发现我的ssh2.ini在那里:

ls /etc/php5/fpm/conf.d
mysqli.ini  mysql.ini  pdo.ini  pdo_mysql.ini  ssh2.ini  

再次根据phpinfo,加载了其他四个ini文件。SSH2不是。

我还试着把"extension=ssh2.so"直接放在我的php.ini文件/etc/php5/fpm/php.ini中。是的,我已经重新启动了nginx服务器。

我是不是错过了什么?

  1. 在php.ini中设置display_startup_errors = On
  2. 在php.ini中设置error_log = '/var/log/php-error.log'
  3. 创建错误日志-touch /var/log/php-error.log

现在,您可以重新启动php5-fpm守护进程,并使用ssh2模块在错误日志中查找任何错误

亚历山大的回答很有帮助。我试图为Plesk构建安装一个PHP扩展。您需要对与域对应的Plesk php.ini版本进行修改(可以在基于web的控制面板中的"工具和设置"下找到)。错误日志将位于/var/log/plesk-phpXX-fpm中。

如上所述,不要取消注释error_log(#2/#3),否则您将不会看到错误显示在此位置。