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

WBOY
Libérer: 2023-06-23 13:28:02
original
1326 Les gens l'ont consulté

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
Copier après la connexion
Copier après la connexion

Si le résultat renvoyé est vide, alors l'extension SSH2 n'est pas installée. Nous devons l'installer en suivant les étapes :

  1. Installer Libssh2

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
Copier après la connexion
  1. Installer l'extension PECL SSH2

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
Copier après la connexion

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
Copier après la connexion

Après l'installation, vous devez ajouter les informations de configuration suivantes dans le fichier php.ini :

extension=ssh2.so
Copier après la connexion
  1. Redémarrez le serveur PHP-FPM ou Apache

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
Copier après la connexion

Si vous utilisez le serveur Apache, vous pouvez utiliser la commande suivante pour redémarrer :

sudo service apache2 restart
Copier après la connexion
  1. Vérifiez si l'extension SSH2 est installée

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
Copier après la connexion
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!