Установите расширение PECL SSH2 для PHP

Я пытаюсь установить это 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 'failed

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

ОШИБКА: `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2 =/usr/lib 'не удалось

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

Ответ 1

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

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

Ответ 2

$ 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

Ответ 3

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

Нет доступных пакетов libssh2-devel.

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

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

Ответ 4

Я работаю на 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

Ответ 5

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

Я нахожусь на Pair.com "Продвинутый" аккаунт, поэтому я немного ограничен тем, что мне разрешено делать. Я не думаю, что могу 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, я должен сделать "cd". после команды. /configure. В противном случае make выдает ошибку "Разрешение отказа". По-видимому, это необходимо для всех вкусов * nix BSD.