SSH2 を使用してリモート サーバーに接続すると、一部のユーザーに「PHP 致命的エラー: 未定義関数 ssh2_connect() の呼び出し」というエラー メッセージが表示され、接続が失敗することがあります。これは、サーバーに ssh2 拡張機能がインストールされていないことが原因です。この記事では、この問題を解決する方法について説明します。
1. SSH2 拡張機能がインストールされているかどうかを確認する
まず、ssh2 拡張機能がサーバーにインストールされているかどうかを確認する必要があります。次のコマンドを使用して確認します。
php -m | grep ssh2
サーバーに ssh2 拡張機能がインストールされている場合、出力は次のようになります。
ssh2
出力が空の場合は、ssh2 拡張機能をインストールする必要があります。 。
2. SSH2 拡張機能のインストール
ssh2 拡張機能をインストールするには、yum コマンドを使用する方法と手動コンパイルを使用する方法の 2 つがあります。
yum コマンドを使用する
次のコマンドを使用してインストールします:
yum install php-pecl-ssh2 -y
インストールが完了したら、Apache または Nginx サービスを再起動します。
手動コンパイル方法
サーバーに yum パッケージ マネージャーがインストールされていない場合は、次の手順を使用して ssh2 拡張機能を手動でコンパイルできます。
2.1 ssh2 ソース コードのダウンロード
PECL Web サイトに移動して、ssh2 拡張機能のソース コードをダウンロードします。
http://pecl.php.net/package/ssh2
ダウンロードする最新バージョン (ssh2-1.3 など) を選択します。ツグズ。ダウンロードが完了したら、ssh2 ソース コード ディレクトリに移動し、次のコマンドを実行します。
tar zxvf ssh2-1.3.tgz cd ssh2-1.3/
2.2 依存関係のインストール
次のコマンドを使用して、ssh2 拡張機能のコンパイルに必要な依存関係をインストールします。 ##
yum install php-devel libssh2 libssh2-devel -y
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
extension=ssh2.so
apachectl -k restart
nginx -s reload
ssh2
以上がPHP 致命的エラーの解決策: 未定義関数 ssh2_connect() の呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。