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

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

王林
王林オリジナル
2023-06-22 13:36:491289ブラウズ

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

2.3 コンパイルとインストール

次のコマンドを実行してコンパイルとインストールを行います。

phpize
./configure --with-php-config=/usr/bin/php-config
make && make install

完了後、次の行を PHP 構成ファイル php.ini に追加します。

extension=ssh2.so

3. Apache または Nginx サービスを再起動します

ssh2 拡張機能をインストールまたはコンパイルした後、設定を有効にするために Apache または Nginx サービスを再起動する必要があります。

次のコマンドを使用して Apache サービスを再起動します:

apachectl -k restart

次のコマンドを使用して Nginx サービスを再起動します:

nginx -s reload

4. SSH2 拡張機能が有効かどうかを確認します

最後に、コマンド php -m | grep ssh2 を使用して、ssh2 拡張機能が有効になっているかどうかを再確認します。出力は次のようになります:

ssh2

出力が空の場合は、再度確認する必要がありますSSH2 拡張機能が正しくインストールされているかどうかを確認し、それが PHP 構成ファイル php にあることを確認します。ini に extension=ssh2.so 行が含まれています。

概要

上記の手順により、「PHP 致命的エラー: 未定義関数 ssh2_connect() の呼び出し」というエラー メッセージを解決できます。このエラーを回避するには、サーバーのインストール時に ssh2 拡張機能をインストールして、リモート サーバーへの接続を容易にすることをお勧めします。

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

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