2009-02-18 4 views
10

Я пытаюсь установить это http://fr2.php.net/manual/en/book.ssh2.php на Centos 5 (вилка RHEL 5).Установить расширение PECL SSH2 для PHP

Я установил libssh2 (ням установить libssh2) которым находится в/USR/Lib, и когда я установить расширение SSH2 (через PECL установить -f ssh2) Я получаю это сообщение

checking for ssh2 files in default path... not found configure: error: The required libssh2 library was not found. You can obtain that package from http://sourceforge.net/projects/libssh2/ ERROR: `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2=/usr' failed

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

ERROR: `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2=/usr/lib' failed

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

ответ

23

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

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

+0

В каком хранилище вы получаете это? Я не могу найти его по умолчанию или в Atomic. –

+1

Nevermind, я нашел их по адресу http://repoforge.org/ –

+0

Не нужно ли «pecl install» также? – ericn

0

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

Я на 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.

6
$ 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

Хорошо работает на поле Ubuntu на Vagrant. – Piero

+1

Если в вашем ящике Vagrant работает php 7, 'sudo pecl install -a ssh2-1.0' в соответствии с [их документацией] (https://pecl.php.net/package/ssh2) – avn

+0

Я выполнил инструкцию, и модули доступно, когда я запускаю php через apache. Но не тогда, когда я запускаю php из командной строки. Что бы вы сделали на этом этапе? –

2

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

Нет пакета libssh2-Devel.

Я скачал пакет оборотов в минуту от rpmfind и установлен с rpm -ivh

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

1

Я бегу на Centos, ни один из них ответа не было все решение для меня. Я последовал за these instructions:

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

Но php-devel не установит, жалуясь конфликтов.Я искал ни, чтобы найти то, что 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 
Смежные вопросы