Abysse Tech

HiTech 4 All

phpssh

Comment Installer PHP SSH sur son serveur Web

by

Voici comment installer PHP SSH sur son serveur web, pour pouvoir lancer des commandes SSH. Cette librairie ajoutée à PHP peut effectivement s’avérer très utile pour avoir une interface web de gestion de serveur linux. Par exemple ici, cela m’a permis d’automatiser la création de comptes FTP, ou de comptes chrootés SSH pour balancer du rsync, ou encore une interface de gestion de zone DNS sur un serveur cPanel DNS only qui est principalement fait pour du clustering mais pas pour de la gestion directe. (ce qui est nul à mon humble avis)

Allez on est parti! On commence par télécharger la librairie libssh2 sur notre serveur :

root@server1 [~]# cd /usr/local/src

root@server1 [~]# wget http://www.libssh2.org/snapshots/libssh2-1.4.0-20120319.tar.gz

root@server1 [~]# tar -xzf libssh2-1.4.0-20120319.tar.gz

root@server1 [~]# cd libssh2-*

root@server1 [~]# ./configure

 

On cherche le dossier des extensions PHP :

root@server1 [~]# php -i | grep extension_dir

qui donne quelque chose comme ceci :

/usr/local/lib/php/extensions/no-debug-non-zts-20090626

On télécharge le module PECL SSH 2

root@server1 [~]# cd /usr/local/lib/php/extensions/no-debug-non-zts-20090626

root@server1 [~]# wget http://pecl.php.net/get/ssh2-0.12.tgz

root@server1 [~]# tar -xzf ssh2-0.11.3.tgz

root@server1 [~]# mv ssh2-0.11.3 php-ssh2

root@server1 [~]# cd php-ssh2

root@server1 [~]# phpize

root@server1 [~]# ./configure –with-ssh2

root@server1 [~]# make

root@server1 [~]# make install

Ensuite, on charge le module dans le php.ini :

 

root@server1 [~]# php -i | grep “Loaded Configuration File”

Loaded Configuration File > /usr/local/lib/php.ini

 

On tape la commande suivante pour insérer l’extension directement dans le .ini sans passer par l’éditeur vi

 

root@server1 [~]# echo “extension=ssh2.so” > /usr/local/lib/php.ini

On redémmarre apache :

root@server1 [~]# service httpd restart

On vérifie que l’extension est bien chargée et on est bon !

 

root@server1 [~]# php -i | grep ssh2

Registered PHP Streams > compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip, ssh2.shell, ssh2.exec, ssh2.tunnel, ssh2.scp, ssh2.sftp
ssh2

libssh2 version > 1.4.0-20120319

banner > SSH-2.0-libssh2_1.4.0-20120319

PWD > /usr/local/lib/php/extensions/no-debug-non-zts-20090626/php-ssh2

_SERVER["PWD"] > /usr/local/lib/php/extensions/no-debug-non-zts-20090626/php-ssh2

_ENV["PWD"] > /usr/local/lib/php/extensions/no-debug-non-zts-20090626/php-ssh2

 

Si vous avez l’erreur suivante lors de make / make isntal :

 

./configure .with-ssh2 failed

 

Vérifier bien que lors du copier coller vous avez bien saisis ./configure –with-ssh2 failed au lieu du .with-ssh2 qui peut arriver lors du copier coller. Je précise car j’ai mis pas mal de temps à m’en rendre compte ;).

Leave A Comment