好的,我的系统pipe理员通常会照顾这个,但是他最近一直很懒散,我不能再等了。
我用PECL来安装PHP的ssh2扩展。 我已经把extension=ssh2.so放在php.ini中,并检查了ssh2.so在extension_dir 。 当我php -m | grep ssh2 php -m | grep ssh2 ,它显示ssh2 。 当我运行这个脚本时:
<?php if (function_exists('ssh2_connect')) { echo "true"; } ?>
并从命令行运行它,它是true 。
当我通过networking服务器运行phpinfo() ,我无法在任何地方findssh2 。 当我通过networking服务器运行ssh2_connect() ,它告诉我函数是未定义的。
我的操作系统是CentOS 5.7 PHP版本5.2.14 nginx / 0.7.67
我一直在寻找谷歌,并尝试所有我能find的,但我无法弄清楚。 谁能帮忙?
编辑:
为了让你们更新,Shish是对的。 我find了一个程序php-fpm ,当被调用时,似乎是我正在寻找的。 但是,由于API编号不匹配,无法加载ssh2扩展
Starting php_fpm PHP Warning: PHP Startup: ssh2: Unable to initialize module Module compiled with module API=20050922, debug=0, thread-safety=0 PHP compiled with module API=20060613, debug=0, thread-safety=0 These options need to match in Unknown on line 0 done
经过一番简短的研究,似乎可能是我通过PECL安装ssh2模块的问题,我相信我的系统pipe理员是从源代码编译PHP的。
现在看看它。
编辑:
经过额外的研究,似乎在我的系统上安装了两个PHP版本。 一个我可能通过百胜安装,一个是我的系统pipe理员可能安装。 看来php-fpm正在加载他安装的那个,自然我的更新不会影响它。 也许我会等他,以防万一我把事情搞砸了。
编辑:
第二个想法,我只是要删除一切,自己尝试。 在最坏的情况下,我只需要让他重新安装所有的东西,最好的情况下,它将工作,我不会再等待他了。 祝我好运。
编辑:
不。 刮那个。 不知道我在做什么。 我想我讨厌我的生活。 现在我有大约30个标签在Chrome中打开。 我去睡觉了。 希望有人能在睡觉的时候提供进一步的见解。
编辑:
是的,可能会摧毁一切。 要尝试修复我的伤害,然后让我的系统pipe理员再次处理它。 去接受当前的答案,因为,那是对的。 过去那只是模块API不匹配的问题。
您需要重新启动PHP守护进程 – 如果Web服务器是nginx,那么PHP可能以fastcgi或PHP-FPM运行。 不幸的是,我不知道CentOS知道确切的命令来重新启动守护进程…