15 Stimmen

PECL SSH2-Erweiterung für PHP installieren

Ich versuche dies zu installieren http://fr2.php.net/manual/en/book.ssh2.php auf einem Centos 5 (einem Fork von RHEL 5).

Ich habe libssh2 installiert (yum install libssh2), die sich in /usr/lib befindet, und wenn ich die SSH2-Erweiterung installiere (über pecl install -f ssh2), erhalte ich folgende Meldung

Prüfung auf ssh2-Dateien im Standardpfad... nicht gefunden configure: Fehler: Die erforderliche libssh2-Bibliothek wurde nicht gefunden. Sie können dieses Paket von http://sourceforge.net/projects/libssh2/ ERROR: `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2=/usr' fehlgeschlagen

Wenn ich /usr/lib einstelle, erhalte ich die gleiche Meldung

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

Wo liegt das Problem?

24voto

Cédric Girard Punkte 3288

Installation von libssh2 via tar.gz von http://sourceforge.net/projects/libssh2/ eine große Hilfe (--with-ssh2=/usr/local/include/).

Aber "yum install libssh2-devel" ist eine bessere Idee.

11voto

serghei Punkte 2746
$ 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

3voto

Tomasz Punkte 4361

Dies ist aktualisiert réponse von @klay + Änderung von @avn aus Kommentar unter Arbeitslösung für PHP 7.x .

$ sudo pecl channel-update pecl.php.net
$ sudo apt-get install libssh2-1-dev
$ sudo pecl install -a ssh2-1.0
$ echo 'extension=ssh2.so' | sudo tee /etc/php/7.2/mods-available/ssh2.ini > /dev/null
$ sudo phpenmod ssh2

Bezüglich der Linie:

echo 'extension=ssh2.so' | sudo tee /etc/php/7.2/mods-available/ssh2.ini > /dev/null

Stellen Sie sicher, dass der Pfad /etc/php/7.2/mods-available gültig ist und eine Übereinstimmung mit Ihrer php-Version besteht.

2voto

vladkras Punkte 15193

yum install libssh2-devel hat bei mir nicht funktioniert:

Kein Paket libssh2-devel verfügbar.

Also habe ich das rpm-Paket von rpmfind und installiert mit rpm -ivh

Danach einfach hinzugefügt extension=ssh2.so a /etc/php.d/ssh2.ini

1voto

user151841 Punkte 16279

Ich verwende Centos, keine dieser Antworten war die vollständige Lösung für mich. Ich folgte diese Anleitungen :

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

Aber php-devel lässt sich nicht installieren, da es zu Konflikten kommt. Ich habe yum durchsucht, um herauszufinden, welche php devel-Pakete ich zur Verfügung habe

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

Also habe ich

$> sudo yum install -y php56u-devel

Und es wurde sauber installiert. Dann habe ich, den Anweisungen folgend, Folgendes ausgeführt

$ pecl install -f ssh2

Und sie wurde zusammengestellt. Dann habe ich die Erweiterung zu php hinzugefügt

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

Und auf meinem System wird anstelle von

$ /etc/init.d/httpd restart

Ich hatte zu tun

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

Das waren also alle Schritte zur Installation. Und schließlich zu bestätigen:

$> php -m|grep ssh2
ssh2

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X