Lors de l'utilisation de SSH2 pour se connecter à un serveur distant, certains utilisateurs rencontrent souvent le message d'erreur « Erreur fatale PHP : appel à la fonction non définie ssh2_connect() », provoquant l'échec de la connexion. Cela est dû au fait que l'extension ssh2 n'est pas installée sur le serveur. Cet article explique comment résoudre ce problème.
1. Vérifiez si l'extension SSH2 est installée
Tout d'abord, vous devez vérifier si l'extension ssh2 a été installée sur le serveur. Utilisez la commande suivante pour vérifier :
php -m | grep ssh2
Si l'extension ssh2 est installée sur le serveur, la sortie devrait ressembler à ceci :
ssh2
Si la sortie est vide, vous devez installer l'extension ssh2.
2. Installez l'extension SSH2
Il existe deux façons d'installer l'extension ssh2, à savoir en utilisant la commande yum et la compilation manuelle.
Utilisez la commande yum
Utilisez la commande suivante pour installer :
yum install php-pecl-ssh2 -y
Une fois l'installation terminée, redémarrez simplement le service Apache ou Nginx.
Méthode de compilation manuelle
Si le gestionnaire de packages yum n'est pas installé sur le serveur, vous pouvez utiliser les étapes suivantes pour compiler manuellement l'extension ssh2.
2.1 Téléchargez le code source de ssh2
Allez sur le site Web de PECL pour télécharger le code source de l'extension ssh2 :
http://pecl.php.net/package/ssh2
Choisissez la dernière version à télécharger, telle que ssh2-1.3.tgz. Une fois le téléchargement terminé, entrez dans le répertoire du code source ssh2 et exécutez la commande suivante :
tar zxvf ssh2-1.3.tgz cd ssh2-1.3/
2.2 Installer les dépendances
Utilisez la commande suivante pour installer les dépendances requises pour compiler l'extension ssh2 :
yum install php-devel libssh2 libssh2-devel -y
2.3 Compiler et installer
Exécutez la commande suivante pour compiler et installer :
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
Une fois terminé, ajoutez la ligne suivante au fichier de configuration PHP php.ini :
extension=ssh2.so
3. Redémarrez le service Apache ou Nginx
Après avoir installé ou compilé l'extension ssh2, vous vous devez redémarrer le service Apache ou Nginx pour que la configuration prenne effet.
Redémarrez le service Apache à l'aide de la commande suivante :
apachectl -k restart
Redémarrez le service Nginx à l'aide de la commande suivante :
nginx -s reload
4. Vérifiez si l'extension SSH2 est activée
Enfin, utilisez la commande php -m | grep ssh2 pour revérifier. si l'extension ssh2 est activée, la sortie devrait ressembler à ceci :
ssh2
Si la sortie est vide, vous devez revérifier que l'extension SSH2 est correctement installée et confirmer que la ligne extension=ssh2.so est incluse dans le Fichier de configuration PHP php.ini.
Résumé
Grâce aux étapes ci-dessus, vous pouvez résoudre le message d'erreur « Erreur fatale PHP : appel à une fonction non définie ssh2_connect() ». Afin d'éviter cette erreur, il est recommandé d'installer l'extension ssh2 lors de l'installation du serveur pour faciliter la connexion au serveur distant.
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!