使用 nginx 启用 PHP 的 SSH2 扩展

使用 nginx 启用 PHP 的 SSH2 扩展

好的,通常我的系统管理员会处理这个问题,但是他最近比较懒散,我不能再等了。

我使用 PECL 安装了 PHP 的 ssh2 扩展。我已将 放入extension=ssh2.sophp.ini 中,并检查 ssh2.so 是否在 中extension_dir。当我 时php -m | grep ssh2,它显示ssh2。当我运行此脚本时:

<?php

if (function_exists('ssh2_connect'))
{
    echo "true";
}

?>

并从命令行运行它,它会回显true

当我运行phpinfo()网络服务器时,我找不到ssh2任何地方。当我运行ssh2_connect()网络服务器时,它告诉我该函数未定义。

我的操作系统是 CentOS 5.7 PHP 版本 5.2.14 nginx/0.7.67

我在 Google 上搜索了所有方法,尝试了所有能找到的方法,但还是没能找到答案。有人能帮忙吗?

编辑:

为了让你们了解最新情况,Shish 是对的。我找到了一个程序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 模块的问题,并且我相信我的系统管理员从源代码​​编译了 PHP。

现在正在调查此事。

编辑:

经过进一步的研究,我发现我的系统上安装了两个版本的 PHP。一个可能是我通过 yum 安装的,另一个可能是我的系统管理员安装的。它似乎php-fpm正在加载他安装的那个,当然我的更新不会影响它。也许我会等他,以防我搞砸了什么。

编辑:

再三考虑,我还是打算把所有东西都删掉,自己试试。最坏的情况下,我只需要让他重新安装所有东西,最好的情况下,一切正常,我就不用再等他了。祝我好运。

编辑:

不。划掉。不知道我在做什么。我觉得我讨厌我的生活。我现在在 Chrome 中打开了大约 30 个标签。我要去睡觉了。希望有人能在我睡觉的时候提供进一步的见解。

编辑:

是的,可能毁掉了一切。我会尝试修复我的损坏,然后让我的系统管理员再次处理。我会接受当前的答案,因为它是正确的。过去只是模块 API 不匹配的问题。

答案1

您需要重新启动 PHP 守护程序 - 如果 Web 服务器是 nginx,那么 PHP 可能以 fastcgi 或 PHP-FPM 运行。不幸的是,我不了解 CentOS,不知道重新启动该守护程序的确切命令...

相关内容