Compiler SSH2 pour PHP sous Debian

Suite à mon article précédent sur l’installation de SVN et poursuivant la mise en place de ma plateforme LAMP, j’ai pour habitude lors de mes commits SVN de déclencher des scripts hooks pour effectuer diverses opérations (envoi de mails, synchronisation de répertoires, etc).

Mon langage de prédilection étant le PHP, j’écris mes scripts console en mode php-cli. Pour effectuer des manipulations au niveau du shell en tant que root ou me connecter sur d’autres machines, j’utilise l’extension SSH2 de php, hélas sous Debian point de package disponible, il faut donc compiler cette extension pour en profiter, voici donc un sujet pour un nouveau article.

1. Installer les packages nécessaires.

Si vous en êtes à compiler la libSSH2 pour PHP, on suppose que vous avez déjà PHP d’installé, on installe donc que les packages de développement et de compilation. On lance donc une console, on se logue en root, on update nos sources et on télécharge les packages suivants :

apt-get update
apt-get install openssl php5-dev libssl-dev g++-3.4 make

2. Télécharger la libSSH2 et la compiler.

On se déplace dans un répertoire dédié à la compilation de nos sources.

cd compilation/
mkdir libssh2
cd libssh2/

On télécharge la libSSH2 en version 0.14, à la date de cet article la dernière version est la 0.18 mais je n’ai jamais réussi à la compiler correctement pour php.

wget http://kent.dl.sourceforge.net/\
sourceforge/libssh2/libssh2-0.14.tar.gz

On décompresse l’archive et on se déplace dans le répertoire.

tar -xzvf libssh2-0.14.tar.gz
cd libssh2-0.14

On lance la compilation.

./configure
make all install

3. Télécharger SSH2 de pecl et lancer la compilation.

On remonte d’un niveau dans les répertoires et on télécharge SSH2.

cd ../
wget http://pecl.php.net/get/ssh2-0.10.tgz

On décompresse l’archive et on se déplace dans le répertoire.

tar -xzvf ssh2-0.10.tgz
cd ssh2-0.10

On lance la compilation.

phpize
./configure
make

Si tout s’est bien passé, logiquement vous devez avoir dans le répertoire “compilation/libssh2/ssh2-0.10/modules”, un fichier nommé ssh2.so.

4. Installation de l’extension SSH2.

On copie ssh2.so dans le répertoire des extensions PHP et on l’active dans les fichiers php.ini d’apache et de php-cli.

cp modules/ssh2.so /usr/lib/php5/20060613+lfs
echo "extension=ssh2.so" >> /etc/php5/apache2/php.ini
echo "extension=ssh2.so" >> /etc/php5/cli/php.ini

On relance Apache pour la prise en compte.

/etc/init.d/apache2 restart

Il ne vous reste plus qu’à vérifier la présence de SSH2 dans votre PHP, à l’aide de la fonction “phpinfo ();” via un script php Apache et pour php-cli lancer cette commande via une console :

php -m

Et voilà, quel plaisir de disposer de SSH dans nos scripts PHP.

Ajouter un commentaire