Maison  >  Article  >  développement back-end  >  Erreur fatale PHP : Erreur non détectée : Appel à la solution ssh2 de fonction non définie ()

Erreur fatale PHP : Erreur non détectée : Appel à la solution ssh2 de fonction non définie ()

WBOY
WBOYoriginal
2023-06-22 19:43:35915parcourir

Récemment, lors de l'utilisation de PHP pour une connexion SSH, certains développeurs rencontreront le message d'erreur suivant :

Erreur fatale PHP : Erreur non détectée : Appel à la fonction non définie ssh2_connect()

ou

Erreur fatale PHP : Erreur non détectée : Appel à une fonction non définie function ssh2_shell()

La raison principale de cette erreur est qu'il manque à PHP la bibliothèque d'extension ssh2. Cet article explique comment résoudre ce problème.

  1. Activez la bibliothèque d'extension PHP ssh2

Tout d'abord, recherchez le fichier php_ssh2.dll dans le dossier ext sous le répertoire d'installation de PHP, puis configurez-le dans php.ini :

extension=php_ssh2.dll

Puis redémarrez Apache Juste le serveur. S'il y a le module ssh2 après avoir exécuté la commande php -m, cela signifie que la bibliothèque d'extension ssh2 a été ouverte avec succès.

  1. Utilisez PECL pour installer la bibliothèque d'extensions ssh2

Si votre version de PHP est inférieure à 5.3.0 et que la bibliothèque d'extensions ssh2 n'est pas fournie, vous devez utiliser PECL pour l'installer.

Tout d'abord, utilisez la commande suivante pour installer libssh2 :

yum install libssh2 libssh2-devel

Ensuite, utilisez PECL pour installer la bibliothèque d'extension ssh2 :

pecl install ssh2-1.0

Enfin, ajoutez les informations de configuration suivantes dans php.ini :

extension=ssh2.so

Puis redémarrez le serveur Apache.

  1. Fichier de configuration de la bibliothèque d'extension ssh2

De plus, la bibliothèque d'extension ssh2 doit configurer le chemin de ssh2. À ce stade, vous devez ajouter les informations de configuration suivantes à /etc/php.d/ssh2.ini :

extension=ssh2.so
ssh2.config=/usr/local/lib

Généralement, vous devez modifier le chemin dans ssh2.config en fonction de la situation réelle.

  1. Vérifiez l'installation de libssh2

Il semble que sous Linux, il est très courant que la bibliothèque ssh2 ne soit pas reconnue. Si vous rencontrez toujours des problèmes, vous devez vérifier si le package libssh2 est installé. Vous pouvez également utiliser la commande suivante pour installer le package libssh2 :

yum install libssh2

Enfin, nous vous recommandons d'ajouter les informations de débogage suivantes à votre programme PHP pour découvrir les problèmes de connexion SSH lors du débogage :

error_reporting(E_ALL); // Afficher tous les messages d'erreur
ini_set('display_errors', 'on'); //Activer l'affichage des erreurs

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn