2009-02-18 5 views
10

J'essaie d'installer ce http://fr2.php.net/manual/en/book.ssh2.php sur un Centos 5 (une fourche de RHEL 5).Installer l'extension PECL SSH2 pour PHP

J'ai installé libssh2 (yum install libssh2) Wich est situé dans/usr/lib, et quand je l'extension SSH2 installer (via pecl install -f SSH2) Je reçois ce message

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 je mets/usr/lib, je reçois le même message

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

Où est le problème?

Répondre

23

L'installation de libssh2 via tar.gz à partir de http://sourceforge.net/projects/libssh2/ aide beaucoup (--with-ssh2 =/usr/local/include /).

Mais "yum install libssh2-devel" est une meilleure idée.

+0

De quel référentiel obtenez-vous cela? Je ne peux pas le trouver dans le défaut ou dans Atomic. –

+1

Peu importe, je les ai trouvés sur http://repoforge.org/ –

+0

N'avons-nous pas besoin de 'pecl install' aussi? – ericn

0

J'ai eu ce problème:

Je suis sur un Pair.com « Advanced » compte hébergé, donc je suis un peu limité sur ce que je suis autorisé à le faire. Je ne pense pas que je peux yum ni aptitude ni aucun des autres paquets précompilés.

J'ai téléchargé et compilé libssh2. Au cours du processus pecl, il demande où se trouve la bibliothèque. C'est dans "~/usr/local/lib" et j'ai essayé plusieurs variantes, y compris pleinement qualifié. Mais j'ai continué à avoir la même erreur.

Le message d'erreur n'épelle pas précisément le fichier recherché. libssh2.so se trouve dans ce répertoire. Je sais que la sortie est supposée être ssh2.so. Je me demandais s'il y avait un ss2.something, ou libssh.nothing?

Je l'ai donc réparé. Dans mon cas, après avoir compilé libssh2 j'ai téléchargé l'archive tar PEAR. L'astuce était:

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

Une autre astuce est que, depuis Pair.com est en cours d'exécution FreeBSD, je dois faire un « cd ». après la commande ./configure. Sinon, make produit une erreur "Autorisation refusée". Apparemment, cela est nécessaire sur tous les saveurs BSD * nix.

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

A bien travaillé sur une boîte Ubuntu sur Vagrant. – Piero

+1

Si votre boîte Vagrant utilise PHP 7, 'sudo pecl install -a ssh2-1.0' selon [leur documentation] (https://pecl.php.net/package/ssh2) – avn

+0

J'ai suivi les instructions et les modules sont disponible lorsque je lance PHP à travers Apache. Mais pas quand je lance PHP à partir de la ligne de commande. Que feriez-vous à ce stade? –

2

yum install libssh2-devel ne fonctionne pas pour moi:

Aucun paquet libssh2-devel disponible.

Je téléchargé paquet rpm à partir rpmfind et installé avec rpm -ivh

Après cela juste ajouté extension=ssh2.so-/etc/php.d/ssh2.ini

1

Je suis en cours d'exécution sur CentOS, aucune de ces réponses étaient toute solution pour moi. Je suivais these instructions:

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

Mais php-devel n'installerait pas, se plaignant de conflits.Je cherchai yum pour trouver quel paquet php devel dont je disposais

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

Je couru

$> sudo yum install -y php56u-devel 

Et installé proprement. Puis, en continuant avec les instructions, j'ai couru

$ pecl install -f ssh2 

Et il compilé. Ensuite, j'ai ajouté l'extension php

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

Et sur mon système, au lieu de

$ /etc/init.d/httpd restart 

je devais faire

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

C'était donc toutes les étapes d'installation. Et enfin pour confirmer:

$> php -m|grep ssh2 
ssh2