Назад | Перейти на главную страницу

Включение расширения PHP SSH2 с помощью nginx

Хорошо, обычно этим занимается мой системный администратор, но в последнее время он немного расслабился, и я не могу больше ждать.

Я использовал PECL для установки расширения PHP ssh2. Я положил extension=ssh2.so в php.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 и пробовал все, что мог найти, но не могу понять. Кто-нибудь может помочь?

РЕДАКТИРОВАТЬ:

Чтобы держать вас в курсе, Шиш был прав. Я нашел программу php-fpm, что при вызове кажется именно тем, что я ищу. Однако не удается загрузить расширение ssh2 из-за несоответствия номеров API.

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

После небольшого исследования выяснилось, что проблема в том, что я установил модуль ssh2 через PECL, и я считаю, что мой системный администратор скомпилировал PHP из исходников.

Изучаю это сейчас.

РЕДАКТИРОВАТЬ:

После дополнительных исследований выяснилось, что в моей системе установлены две версии PHP. Один, который я, вероятно, установил через yum, и тот, который, вероятно, установил мой системный администратор. Кажется php-fpm загружает тот, который он установил, и, естественно, мои обновления не влияют на него. Возможно, я подожду его, если я что-нибудь напортачу.

РЕДАКТИРОВАТЬ:

Если подумать, я просто собираюсь все удалить и попробовать сам. В худшем случае мне просто нужно будет заставить его переустановить все, и в лучшем случае это сработает, и мне больше не придется его ждать. Пожелай мне удачи.

РЕДАКТИРОВАТЬ:

Нет. Сотрите это. Понятия не имею, что делаю. Я думаю, что ненавижу свою жизнь. Сейчас в Chrome открыто около 30 вкладок. Я иду спать. Надеюсь, кто-нибудь сможет дать мне дополнительную информацию, пока я сплю.

РЕДАКТИРОВАТЬ:

Ага, наверное все разрушил. Я попытаюсь исправить мои повреждения, а затем снова позволю моему системному администратору справиться с этим. Собираюсь принять текущий ответ, потому что это был правильный ответ. Раньше это были просто проблемы с несоответствием API модуля.

Вам нужно будет перезапустить демон PHP - если веб-сервер - это nginx, то, вероятно, PHP работает как fastcgi или под PHP-FPM. К сожалению, я не знаю CentOS, чтобы знать точную команду для перезапуска этого демона ...