ホームページ  >  記事  >  バックエンド開発  >  PHP 致命的エラーの解決策: 未定義関数 ssh2_sftp() の呼び出し

PHP 致命的エラーの解決策: 未定義関数 ssh2_sftp() の呼び出し

WBOY
WBOYオリジナル
2023-06-23 11:12:131335ブラウズ

SSH 接続に PHP を使用する開発者にとって、「PHP 致命的エラー: 未定義関数 ssh2_sftp() の呼び出し」というエラーが発生することがよくあります。このエラーは通常、拡張機能が見つからないことが原因で発生します。この記事では、それを修正する方法を説明します。

まず、SSH2 拡張機能がサーバーにインストールされているかどうかを確認する必要があります。ターミナルで次のコマンドを実行して、インストールされているかどうかを確認します。

php -m | grep ssh2

返された結果が空の場合は、SSH2 拡張機能がインストールされていないことを意味します。次の手順に従ってインストールする必要があります。

  1. Libssh2 のインストール

Libssh2 は、SSH サーバーに接続するための SSH2 プロトコルに基づくクライアント ライブラリです。公式 Web サイトから Libssh2 ライブラリをダウンロードする必要があります。最新の Libssh2 ソース コードは、次のリンクにあります。

https://www.libssh2.org/download/libssh2-1.9.0.tar.gz

ダウンロード後は、完了、解凍します ファイルを圧縮して解凍したフォルダーに移動し、ターミナルで次のコマンドを実行して Libssh2 をインストールします。

./configure
make
sudo make install
  1. PECL SSH2 拡張機能をインストールします

PECL は、 PHP 拡張機能ライブラリ センター 。多くの PHP 拡張機能のソース コードを提供します。 PECL を使用して SSH2 拡張機能をインストールする場合は、ターミナルで次のコマンドを実行する必要があります:

sudo pecl install ssh2

インストール プロセス中に、php.ini 構成へのパスを入力するように求められる場合があります。ファイル。次のコマンドを使用して、php.ini ファイルへのパスを見つけることができます:

php -i | grep php.ini

インストール後、次の構成情報を php.ini ファイルに追加する必要があります:

extension=ssh2.so
  1. PHP-FPM または Apache サーバーを再起動します

上記の 2 つの手順を完了したら、PHP-FPM または Apache サーバーを再起動する必要があります。ターミナルで次のコマンドを実行して PHP-FPM を再起動します。

sudo service php-fpm restart

Apache サーバーを使用している場合は、次のコマンドを使用して再起動できます。

sudo service apache2 restart
  1. SSH2 拡張機能がインストールされています

SSH2 拡張機能がインストールされているかどうかを再度確認できます。ターミナルで次のコマンドを実行します。

php -m | grep ssh2

「ssh2」という単語が返された場合は、SSH2 拡張機能が正常にインストールされたことがわかります。

上記の手順を実行しても問題が解決できない場合は、他の依存ライブラリをインストールするか、PHP バージョンをアップグレードしてみてください。

つまり、「PHP 致命的エラー: 未定義関数 ssh2_sftp() の呼び出し」エラーを解決するには、問題を注意深くトラブルシューティングし、上記の手順に従って 1 つずつ確認する必要があります。皆さんも問題解決を楽しんでください!

以上がPHP 致命的エラーの解決策: 未定義関数 ssh2_sftp() の呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。