SSH 接続に PHP を使用する開発者にとって、「PHP 致命的エラー: 未定義関数 ssh2_sftp() の呼び出し」というエラーが発生することがよくあります。このエラーは通常、拡張機能が見つからないことが原因で発生します。この記事では、それを修正する方法を説明します。
まず、SSH2 拡張機能がサーバーにインストールされているかどうかを確認する必要があります。ターミナルで次のコマンドを実行して、インストールされているかどうかを確認します。
php -m | grep ssh2
返された結果が空の場合は、SSH2 拡張機能がインストールされていないことを意味します。次の手順に従ってインストールする必要があります。
Libssh2 は、SSH サーバーに接続するための SSH2 プロトコルに基づくクライアント ライブラリです。公式 Web サイトから Libssh2 ライブラリをダウンロードする必要があります。最新の Libssh2 ソース コードは、次のリンクにあります。
https://www.libssh2.org/download/libssh2-1.9.0.tar.gz
ダウンロード後は、完了、解凍します ファイルを圧縮して解凍したフォルダーに移動し、ターミナルで次のコマンドを実行して Libssh2 をインストールします。
./configure make sudo make install
PECL は、 PHP 拡張機能ライブラリ センター 。多くの PHP 拡張機能のソース コードを提供します。 PECL を使用して SSH2 拡張機能をインストールする場合は、ターミナルで次のコマンドを実行する必要があります:
sudo pecl install ssh2
インストール プロセス中に、php.ini 構成へのパスを入力するように求められる場合があります。ファイル。次のコマンドを使用して、php.ini ファイルへのパスを見つけることができます:
php -i | grep php.ini
インストール後、次の構成情報を php.ini ファイルに追加する必要があります:
extension=ssh2.so
上記の 2 つの手順を完了したら、PHP-FPM または Apache サーバーを再起動する必要があります。ターミナルで次のコマンドを実行して PHP-FPM を再起動します。
sudo service php-fpm restart
Apache サーバーを使用している場合は、次のコマンドを使用して再起動できます。
sudo service apache2 restart
SSH2 拡張機能がインストールされているかどうかを再度確認できます。ターミナルで次のコマンドを実行します。
php -m | grep ssh2
「ssh2」という単語が返された場合は、SSH2 拡張機能が正常にインストールされたことがわかります。
上記の手順を実行しても問題が解決できない場合は、他の依存ライブラリをインストールするか、PHP バージョンをアップグレードしてみてください。
つまり、「PHP 致命的エラー: 未定義関数 ssh2_sftp() の呼び出し」エラーを解決するには、問題を注意深くトラブルシューティングし、上記の手順に従って 1 つずつ確認する必要があります。皆さんも問題解決を楽しんでください!
以上がPHP 致命的エラーの解決策: 未定義関数 ssh2_sftp() の呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。