Установите расширение PECL SSH2 для PHP - PullRequest
11 голосов
/ 18 февраля 2009

Я пытаюсь установить это http://fr2.php.net/manual/en/book.ssh2.php на Centos 5 (вилка RHEL 5).

Я установил libssh2 (yum install libssh2), который находится в / usr / lib, и когда я устанавливаю расширение SSH2 (через pecl install -f ssh2), я получаю это сообщение

проверка файлов ssh2 в пути по умолчанию ... не найдено configure: error: требуемая библиотека libssh2 не найдена. Вы можете получить этот пакет от http://sourceforge.net/projects/libssh2/ ОШИБКА: `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2 = / usr 'не удалось

Если я установлю / usr / lib, я получу то же сообщение

ОШИБКА: сбой `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2 = / usr / lib

Где проблема?

Ответы [ 6 ]

23 голосов
/ 18 февраля 2009

Установка libssh2 через tar.gz из http://sourceforge.net/projects/libssh2/ очень помогает (--with-ssh2 = / usr / local / include /).

Но "yum install libssh2-devel" - лучшая идея.

8 голосов
/ 28 октября 2015
$ sudo pecl channel-update pecl.php.net
$ sudo apt-get install libssh2-1-dev
$ sudo pecl install -a ssh2-0.12
$ echo 'extension=ssh2.so' | sudo tee /etc/php5/mods-available/ssh2.ini > /dev/null
$ sudo php5enmod ssh2
2 голосов
/ 08 января 2016

yum install libssh2-devel не работает для меня:

Пакет libssh2-devel недоступен.

Итак, я скачал пакет rpm из rpmfind и установил с rpm -ivh

После этого просто добавили extension=ssh2.so к /etc/php.d/ssh2.ini

1 голос
/ 04 августа 2016

Я работаю на Centos, ни один из этих ответов не был для меня полным решением. Я следовал этим инструкциям :

$ sudo yum install -y gcc php-devel php-pear libssh2 libssh2-devel

Но php-devel не установится, жалуясь на конфликты. Я искал yum, чтобы найти доступные пакеты php devel

$> yum search php|grep devel
...
php55u-devel.x86_64 : Files needed for building PHP extensions
php56u-devel.x86_64 : Files needed for building PHP extensions
php70u-devel.x86_64 : Files needed for building PHP extensions
...

Итак, я побежал

$> sudo yum install -y php56u-devel

И он установлен чисто. Затем, продолжая инструкции, я запустил

$ pecl install -f ssh2

И это скомпилировано. Затем я добавил расширение для php

$ touch /etc/php.d/ssh2.ini
$ echo extension=ssh2.so > /etc/php.d/ssh2.ini

И в моей системе вместо

$ /etc/init.d/httpd restart

Я должен был сделать

$ sudo /bin/systemctl restart  php-fpm.service 

Так что это были все шаги для установки. И, наконец, для подтверждения:

$> php -m|grep ssh2
ssh2
0 голосов
/ 15 октября 2018

Так что это обновлено ответ от @klay + модификация от @avn из комментария под рабочим решением для PHP 7.x .

$ sudo pecl channel-update pecl.php.net
$ sudo apt-get install libssh2-1-dev
$ sudo pecl install -a ssh2-1.0
$ echo 'extension=ssh2.so' | sudo tee /etc/php/7.2/mods-available/ssh2.ini > /dev/null
$ sudo phpenmod ssh2

Относительно строки:

echo 'extension=ssh2.so' | sudo tee /etc/php/7.2/mods-available/ssh2.ini > /dev/null

Убедитесь, что путь /etc/php/7.2/mods-available действителен и соответствует вашей версии php.

0 голосов
/ 18 июня 2010

У меня была эта проблема:

Я нахожусь на хостинг-счете Pair.com "Advanced", поэтому я немного ограничен в том, что мне разрешено делать. Я не думаю, что могу yum, ни aptitude, ни другие предварительно скомпилированные пакеты.

Я скачал и скомпилировал libssh2. Во время процесса pecl он спрашивает, где находится библиотека. Он находится в "~ / usr / local / lib", и я попробовал несколько вариантов, включая полностью квалифицированные. Но я продолжал получать ту же ошибку.

В сообщении об ошибке не указано, какой именно файл он ищет. libssh2.so находится в этом каталоге. Я знаю, что вывод должен быть ssh2.so. Я задавался вопросом, должен ли быть ss2.something или libssh.nothing?

Я исправил это таким образом. В моем случае после компиляции libssh2 я скачал архив PEAR. Трюк был:

./configure --with-ssh2=<libssh2 location> --prefix=<libssh2 location>

Еще одна хитрость заключается в том, что поскольку Pair.com использует FreeBSD, мне нужно сделать «компакт-диск». после команды ./configure. В противном случае, make выдает ошибку «Отказано в доступе». По-видимому, это необходимо для всех разновидностей * nix BSD.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...