Pour les développeurs qui utilisent PHP pour les connexions SSH, il peut être très courant de rencontrer l'erreur « Erreur fatale PHP : Appel à une fonction non définie ssh2_sftp() ». Cette erreur est généralement causée par une extension manquante, et cet article vous montrera comment y remédier.
Tout d'abord, nous devons vérifier si l'extension SSH2 est déjà installée sur le serveur. Exécutez la commande suivante dans le terminal pour vérifier si elle est installée :
php -m | grep ssh2
Si le résultat renvoyé est vide, alors l'extension SSH2 n'est pas installée. Nous devons l'installer en suivant les étapes :
Libssh2 est une bibliothèque client basée sur le protocole SSH2 pour se connecter au serveur SSH. Nous devons télécharger la bibliothèque Libssh2 depuis le site officiel. Le dernier code source de Libssh2 peut être trouvé sur le lien suivant :
https://www.libssh2.org/download/libssh2-1.9.0.tar.gz
Une fois le téléchargement terminé, décompressez le fichier et entrez le dossier décompressé, exécutez la commande suivante dans le terminal pour installer Libssh2 :
./configure make sudo make install
PECL est le centre de bibliothèque d'extensions PHP, qui fournit le code source de nombreuses extensions PHP. Si nous voulons utiliser PECL pour installer l'extension SSH2, nous devons exécuter la commande suivante dans le terminal :
sudo pecl install ssh2
Pendant le processus d'installation, vous pouvez être invité à renseigner le chemin d'accès au fichier de configuration php.ini. Vous pouvez utiliser la commande suivante pour trouver le chemin d'accès au fichier php.ini :
php -i | grep php.ini
Après l'installation, vous devez ajouter les informations de configuration suivantes dans le fichier php.ini :
extension=ssh2.so
Complétez les deux ci-dessus. Après ces étapes, nous devons redémarrer le serveur PHP-FPM ou Apache. Exécutez la commande suivante dans le terminal pour redémarrer PHP-FPM :
sudo service php-fpm restart
Si vous utilisez le serveur Apache, vous pouvez utiliser la commande suivante pour redémarrer :
sudo service apache2 restart
Nous pouvons vérifier à nouveau si l'extension SSH2 est installée, installez. Exécutez la commande suivante dans le terminal :
php -m | grep ssh2
Si le mot "ssh2" est renvoyé, cela prouve que l'extension SSH2 a été installée avec succès.
Si le problème ne peut toujours pas être résolu après les étapes ci-dessus, vous pouvez essayer d'installer d'autres bibliothèques dépendantes ou mettre à niveau la version PHP.
En bref, résoudre l'erreur « Erreur fatale PHP : appel à une fonction non définie ssh2_sftp() » nous oblige à résoudre soigneusement le problème et à suivre les étapes ci-dessus pour vérifier une par une. Bonne résolution de problèmes à tous !
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!