ホームページ  >  記事  >  バックエンド開発  >  PHP 致命的エラー: キャッチされないエラー: 未定義関数 ssh2 ソリューションの呼び出し ()

PHP 致命的エラー: キャッチされないエラー: 未定義関数 ssh2 ソリューションの呼び出し ()

WBOY
WBOYオリジナル
2023-06-22 19:43:35912ブラウズ

最近、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 サイトの他の関連記事を参照してください。

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