2009-02-18 39 views
10

Estoy tratando de instalar este http://fr2.php.net/manual/en/book.ssh2.php en un Centos 5 (un tenedor de RHEL 5).Instalar extensión PECL SSH2 para PHP

He instalado libssh2 (yum install libssh2) wich se encuentra en/usr/lib, y cuando instalo extensión SSH2 (vía PECL instalar ssh2 -f) me sale este mensaje

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

Si fijo/usr/lib, recibo el mismo mensaje

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

¿Dónde está el problema?

Respuesta

23

Instalar libssh2 via tar.gz desde http://sourceforge.net/projects/libssh2/ ayuda mucho (--with-ssh2 =/usr/local/include /).

Pero "yum install libssh2-devel" es una mejor idea.

+0

¿De qué depósito está obteniendo eso? No puedo encontrarlo en el valor predeterminado o en Atomic. –

+1

No importa, los encontré en http://repoforge.org/ –

+0

¿No necesitamos 'pecl install' también? – ericn

0

he tenido este problema:

Estoy en una "avanzada" Pair.com alojada cuenta, así que estoy un poco limitado en lo que yo estoy autorizado a hacerlo. No creo que pueda yum ni aptitude ni ninguno de los otros paquetes precompilados.

He descargado y compilado libssh2. Durante el proceso pecl, pregunta dónde se encuentra la biblioteca. Está en "~/usr/local/lib" y he intentado varias variaciones, incluso totalmente calificado. Pero seguí recibiendo el mismo error.

El mensaje de error no especifica con precisión qué archivo está buscando. libssh2.so está en ese directorio. Sé que la salida se supone que es ssh2.so. Me preguntaba si se supone que debe haber un ss2.something, o libssh.nothing?

Lo arreglé así. En mi caso, después de compilar libssh2 descargué el tarball PEAR. El truco era:

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

Otro truco es que, dado que Pair.com se está ejecutando FreeBSD, tengo que hacer un "CD". después del comando ./configure. De lo contrario, make produce un error "Permiso denegado". Aparentemente, esto es necesario en todos los sabores * 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

funcionó bien en una caja de Ubuntu en Vagrant. – Piero

+1

Si su caja de Vagrant está ejecutando php 7, 'sudo pecl install -a ssh2-1.0' según [su documentación] (https://pecl.php.net/package/ssh2) – avn

+0

Seguí las instrucciones y los módulos son disponible cuando ejecuto php a través de apache. Pero no cuando ejecuto php desde la línea de comando. ¿Qué harías en este momento? –

2

yum install libssh2-devel no funcionó para mí:

n paquete libssh2-devel disponibles.

lo que he descargado el paquete rpm de rpmfind e instalado con rpm -ivh

Después de eso, añadido extension=ssh2.so-/etc/php.d/ssh2.ini

1

estoy corriendo en Centos, ninguna de estas respuestas eran toda la solución para mí. Seguí these instructions:

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

Pero php-devel no sería instalar, quejándose de conflictos.Busqué yum para encontrar lo devel php paquetes que tenía disponibles

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

Así que corrí

$> sudo yum install -y php56u-devel 

Y es instalado limpiamente. Luego, continuando con las instrucciones, ejecuté

$ pecl install -f ssh2 

Y compiló. Luego añade la extensión de PHP

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

Y en mi sistema, en lugar de

$ /etc/init.d/httpd restart 

que tenía que hacer

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

Así que era todos los pasos para instalar. Y finalmente para confirmar:

$> php -m|grep ssh2 
ssh2 
Cuestiones relacionadas