Heim > Artikel > Backend-Entwicklung > Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Funktion ssh2_connect()
Bei der Verwendung von SSH2 zum Herstellen einer Verbindung zu einem Remote-Server stoßen einige Benutzer häufig auf die Fehlermeldung „Schwerwiegender PHP-Fehler: Aufruf der undefinierten Funktion ssh2_connect()“, was dazu führt, dass die Verbindung fehlschlägt. Dies liegt daran, dass auf dem Server die Erweiterung ssh2 nicht installiert ist. In diesem Artikel wird erläutert, wie Sie dieses Problem beheben können.
1. Überprüfen Sie, ob die SSH2-Erweiterung installiert ist.
Zuerst müssen Sie überprüfen, ob die SSH2-Erweiterung auf dem Server installiert wurde. Verwenden Sie zur Überprüfung den folgenden Befehl:
php -m | grep ssh2
Wenn auf dem Server die Erweiterung ssh2 installiert ist, sollte die Ausgabe wie folgt aussehen:
ssh2
Wenn die Ausgabe leer ist, müssen Sie die Erweiterung ssh2 installieren.
2. Installieren Sie die SSH2-Erweiterung
Es gibt zwei Möglichkeiten, die SSH2-Erweiterung zu installieren, nämlich den Befehl yum und die manuelle Kompilierung.
Verwenden Sie den Befehl yum
Verwenden Sie zur Installation den folgenden Befehl:
yum install php-pecl-ssh2 -y
Nach Abschluss der Installation starten Sie einfach den Apache- oder Nginx-Dienst neu.
Manuelle Kompilierungsmethode
Wenn auf dem Server der Yum-Paketmanager nicht installiert ist, können Sie die folgenden Schritte ausführen, um die SSH2-Erweiterung manuell zu kompilieren.
2.1 SSH2-Quellcode herunterladen
Gehen Sie zur PECL-Website, um den Quellcode der SSH2-Erweiterung herunterzuladen:
http://pecl.php.net/package/ssh2
Wählen Sie die neueste Version zum Herunterladen aus, z. B. ssh2-1.3.tgz. Geben Sie nach Abschluss des Downloads das SSH2-Quellcodeverzeichnis ein und führen Sie den folgenden Befehl aus:
tar zxvf ssh2-1.3.tgz cd ssh2-1.3/
2.2 Abhängigkeiten installieren
Verwenden Sie den folgenden Befehl, um die zum Kompilieren der SSH2-Erweiterung erforderlichen Abhängigkeiten zu installieren:
yum install php-devel libssh2 libssh2-devel -y
2.3 Kompilieren und installieren
Führen Sie zum Kompilieren und Installieren den folgenden Befehl aus:
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
Fügen Sie nach Abschluss die folgende Zeile zur PHP-Konfigurationsdatei php.ini hinzu:
extension=ssh2.so
3. Starten Sie den Apache- oder Nginx-Dienst neu.
Nach der Installation oder Kompilierung der ssh2-Erweiterung können Sie Sie müssen den Apache- oder Nginx-Dienst neu starten, damit die Konfiguration wirksam wird.
Starten Sie den Apache-Dienst mit dem folgenden Befehl neu:
apachectl -k restart
Starten Sie den Nginx-Dienst mit dem folgenden Befehl neu:
nginx -s reload
4. Überprüfen Sie abschließend, ob die SSH2-Erweiterung aktiviert ist. Überprüfen Sie abschließend mit dem Befehl php -m grep ssh2 ob die SSH2-Erweiterung aktiviert ist, Ausgabe. Sie sollte so aussehen:
ssh2
Wenn die Ausgabe leer ist, müssen Sie noch einmal prüfen, ob die SSH2-Erweiterung korrekt installiert ist und bestätigen, dass die Zeile extension=ssh2.so im PHP enthalten ist Konfigurationsdatei php.ini.
Zusammenfassung
Durch die oben genannten Schritte können Sie die Fehlermeldung „Schwerwiegender PHP-Fehler: Aufruf der undefinierten Funktion ssh2_connect()“ beheben. Um diesen Fehler zu vermeiden, wird empfohlen, bei der Installation des Servers die Erweiterung ssh2 zu installieren, um die Verbindung zum Remote-Server zu erleichtern.
Das obige ist der detaillierte Inhalt vonLösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Funktion ssh2_connect(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!