Maison >développement back-end >tutoriel php >Solution à l'erreur fatale PHP : appel à la fonction non définie ssh2_connect()

Solution à l'erreur fatale PHP : appel à la fonction non définie ssh2_connect()

王林
王林original
2023-06-22 13:36:491509parcourir

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!

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