PHP5 SSH2: Systempaket, oder PEAR benutzen?

Es gibt 2 einfache Möglichkeiten SSH2 Unterstützung für PHP zu installieren. Zum einen kann man ein fertiges Paket seiner Distribution verwenden. Bei Debian z.B. wäre es libssh2-php:

apt-get install libssh2-php

Bei PECL Paketen kann es vorkommen, dass man mit dem Systempaket eine recht veraltete, von längst behobenen Bugs betroffene, Version erhält.
Die Version 0.11.0, die mit Debian ausgeliefert wird, hat z.B. viele, die Grundfunktionen betreffende, Bugs. Eine Übersicht kann man im Changelog des PECL Paketes sehen.

Es bietet sich deswegen an, die aktuelle Version mittels PEAR zu beziehen. Wenn man ein Systempaket bereits installiert hatte, sollte man es entfernen. Bei Debian geht dies mit:

apt-get remove libssh2-php

Dann installiert man das PEAR Paket. Bei Debian mit:

apt-get install php5-dev php-pear libssh2-1 libssh2-1-dev

Bei den Red Hat/CentOS Distributionen:

yum install php-pear

Distributionsunabhängig geht es dann weiter mit dem PECL Installer:

pecl install --alldeps ssh2-beta

Fall noch nicht vorhanden, muss man PHP noch sagen, dass es die Extension laden muss.
Damit es übersichtlich bleibt, erstellt man eine eigene Datei in /etc/php5/conf.d/:

echo "extension=ssh2.so" > /etc/php5/conf.d/ssh2.ini

Anschließend den Apache2 neu starten:

/etc/init.d/apache2 restart

Die Ausgabe von phpinfo(); sollte nun folgendes enthalten:

Registered PHP Streams (…), ssh2.shell, ssh2.exec, ssh2.tunnel, ssh2.scp, ssh2.sftp

Tech Topic(s) des Artikels