最近、SSH 接続に PHP を使用すると、一部の開発者に次のエラー メッセージが表示されます:
PHP 致命的なエラー: キャッチされないエラー: 未定義関数 ssh2_connect()
または ## の呼び出し
#PHP 致命的なエラー: キャッチされないエラー: 未定義の関数 ssh2_shell() への呼び出し
このエラーの主な理由は、PHP に ssh2 拡張ライブラリが欠落していることです。この記事では、この問題を解決する方法を説明します。
PHP ssh2 拡張ライブラリを開きます-
まず、PHP インストール ディレクトリの ext フォルダーで php_ssh2.dll ファイルを見つけ、php.ini で設定します。 :
extension=php_ssh2.dll
次に、Apache サーバーを再起動します。 php -m コマンドを実行した後に ssh2 モジュールがあれば、ssh2 拡張ライブラリが正常にオープンされたことを意味します。
PECL を使用して ssh2 拡張ライブラリをインストールする-
PHP バージョンが 5.3.0 未満で、ssh2 拡張ライブラリが提供されていない場合は、PECL を使用する必要があります。インストールします。
まず、次のコマンドを使用して libssh2 をインストールします:
yum install libssh2 libssh2-devel
次に、PECL を使用して ssh2 拡張ライブラリをインストールします:
pecl install ssh2 -1.0
最後に、php.ini に次の構成情報を追加します。
extension=ssh2.so
次に、Apache サーバーを再起動します。
ssh2 拡張ライブラリ設定ファイル-
さらに、ssh2 拡張ライブラリは ssh2 のパスを設定する必要があり、これを /etc/php.d に追加する必要があります。 /ssh2.ini 次の構成情報:
extension=ssh2.so
ssh2.config=/usr/local/lib
通常、ssh2 のパスを変更する必要があります。実際の状況に応じて設定します。
libssh2 のインストールを確認してください-
Linux では、ssh2 ライブラリが認識できないことがよくあるようです。それでも問題が解決しない場合は、libssh2 パッケージがインストールされているかどうかを確認する必要があります。次のコマンドを使用して libssh2 ソフトウェア パッケージをインストールすることもできます:
yum install libssh2
最後に、次のデバッグ情報を PHP プログラムに追加して、実行中に SSH 接続の問題を見つけることをお勧めします。 debugging :
error_reporting(E_ALL); //すべてのエラーメッセージを出力
ini_set('display_errors', 'on'); //エラー表示をオンにする
以上がPHP 致命的エラー: キャッチされないエラー: 未定義関数 ssh2 ソリューションの呼び出し ()の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。