我正在尝试安装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服务器。
我是不是错过了什么?
- 在php.ini中设置
display_startup_errors = On
- 在php.ini中设置
error_log = '/var/log/php-error.log'
- 创建错误日志-
touch /var/log/php-error.log
现在,您可以重新启动php5-fpm守护进程,并使用ssh2模块在错误日志中查找任何错误
亚历山大的回答很有帮助。我试图为Plesk构建安装一个PHP扩展。您需要对与域对应的Plesk php.ini版本进行修改(可以在基于web的控制面板中的"工具和设置"下找到)。错误日志将位于/var/log/plesk-phpXX-fpm中。
如上所述,不要取消注释error_log(#2/#3),否则您将不会看到错误显示在此位置。