LibSSH2 auf Debian 3.1 mit Apache2 und PHP4 einrichten & PECL-SSH2 installieren

Heute hatte ich mich im Zuge einer kleinen Programmieraktion in PHP mit SSH2 auseinandersetzen müssen. Da dies standartmäßig nicht integriert ist, habe ich also ein wenig geforscht und bin schlussendlich auf die Möglichkeit einer Installation via PECL gestossen.
Meine Ausgangslage:

  • Debian 3.1 Sarge
  • PHP4
  • Apache2.0
  • Commandozeilenzugriff

Werbung


Die Installation gestaltet sich denkbar einfach, zunächst muss man OpenSSL installieren:

apt-get install openssl-dev openssl

Nachdem dies geschehen ist muss man nun die LibSSH2 installieren, für die es kein Debian-Package gibt. Daher muss man zunächst das neueste Packet von Sourceforge holen und damit folgendes machen(hier am Beispiel der Version 2.0.13):

tar xfvz libssh2-0.13.tar.gz
cd libssh2-0.13
./configure && make all install

Nun ist libSSH2 zur Verwendung bereit. Jetzt kann man via PECL die extension ssh2 installieren. Da es derzeit keine stable Version des ssh2-Packet gibt, muss man die Beta installieren(Zusätzliche Informationen, wie neue Releases, Downloads Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: http://pecl.php.net/package/ssh2):

pecl install ssh2-beta

Nun sollte PECL sich melden wohin es SSH2 installiert hat (bei mir war es glaube ich /usr/share/php4/, aber das is von Installation zu Installation unterschiedlich). Dieses Verzeichnis sollte man mal besuchen, wenn man sich nicht sicher ist, ob es das in der PHP.ini angegebene „extension_dir“-Verzeichnis ist. Sollte sich darin nur eine ssh2.so finden lassen, so sollten sie mal die php.ini konsultieren(cat /etc/php4/apache2/php.ini | grep extension_dir), evtl liegt das extension_dir woanders. Entsprechen muss natürlich die ssh2.so woanders(also in extension_dir) hinkopiert werden.

Nun öffnet man die php.ini, welche sich bei debian unter /etc/php4/apache2/php.ini finden lässt und fügt folgende Zeile entweder am Ende, oder einer geeigneten anderen stelle hinzu:

extension=ssh2.so

Normalerweise sollte sich nun nach einem Restart des Webservers die SSH2-Extension in phpinfo(); finden lassen.

Und fertig 😉

Veröffentlicht von

Uli

IT-Nerd und Admin

10 Gedanken zu „LibSSH2 auf Debian 3.1 mit Apache2 und PHP4 einrichten & PECL-SSH2 installieren“

  1. Cool! da hab ich Glueck gehabt diese Seite zu finden! Ich war an dem Punkt wo ich libssh2 von Sourceforge heruntergeladen hatten, aber nicht libssh2-0.13.tar.gz sondern libssh2-0.14.tar.gz.

    Tollerweise gab es folgenden Fehler:

    gcc -o channel.o channel.c -c -g -O2 /usr/include -I/usr/include -Wall -I../include/ -fPIC
    gcc: cannot specify -o with -c or -S and multiple compilations
    make[1]: *** [channel.o] Error 1
    make[1]: Leaving directory `/home/tobias/libssh2/libssh2-0.14/src‘
    make: *** [all] Error 1

    da hab ich diese Seite gefunden und gesehen dass Du Version 0.13 benutzt hast und dachte: probieren kann ja nicht schaden. Und tatsaechlich: mit 0.13 laeuft alles glatt. Glueck gehabt und danke!

  2. Hallo, ich benutze die libssh2-0.14.tar.gz, habe keinen Fehler, jedoch bekomme ich beim Aufruf von „pecl install ssh2-beta“ die Fehlermeldung

    -bash: pecl: command not found

    Was kann ich da machen?
    Habe Debian 3.1, aber mit apt hab ich auch nichts gefunden.
    Was ist pecl??

    lg Max

  3. Hallo,
    ganz kurz ne Frage zu:

    im Src-Verzeichnis:
    find -name Makefile.in -exec perl -pi.bak -e ’s/\$\(CC\)\s -o\s [\w_-] ?\.o/\$(CC)/’ {} \;

    Gibt bei mir:

    -bash: syntax error near unexpected token `(‚

    Wie fixen? ^^

  4. Okay.

    Öffne Makefile und src/Makefile:
    Zeile 10:
    FLAGS = -c /usr/include -I/usr/include -Iinclude/ -Wall
    durch folgendes ersetzen:
    CFLAGS = -c -I/usr/include -Iinclude/ -Wall

    damit sollte gehen

    Hab grad keine Zeit es zu Probieren….

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.