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

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

王林
王林オリジナル
2023-06-22 22:40:391502ブラウズ

PHP は、さまざまなオペレーティング システムと Web サーバーをサポートする、広く使用されているサーバー側プログラミング言語です。 PHP でリモート接続に SSH (Secure Shell) プロトコルを使用すると、「PHP 致命的なエラー: 未定義関数 ssh2_exec() の呼び出し」というエラー メッセージが表示される場合があります。この記事では、このエラーを解決する方法について説明します。

1. ssh2 拡張機能をインストールする
まず、ssh2 拡張機能をインストールする必要があります。この拡張機能は、PHP が SSH サーバーと対話するための機能を提供します。次のコマンドでインストールできます。

Ubuntu および Debian では、次のコマンドを使用します。
sudo apt-get install libssh2-1-dev libssh2-php

CentOS および Red Hat Enterprise Linux では、次のコマンドを使用します。
sudo yum install gcc php-devel php-pear libssh2 libssh2-devel

  1. ssh2 拡張機能をコンパイルしてインストールする
    ssh2 拡張機能をインストールした後、拡張機能をコンパイルしてインストールするには、PECL (PHP Extension Community Library) を使用する必要があります。 PECL は、PHP 拡張機能を一元管理するためのツールであり、PHP 拡張機能の入手とインストールを簡単にします。次のコマンドを実行します。

sudo pecl install ssh2

インストールが完了したら、ssh2 拡張子を php.ini ファイルに追加する必要があります。次のコマンドを使用して php.ini ファイルの場所を見つけることができます:

php -i | grep 'ロードされた設定ファイル'

次に、php.ini ファイルを開いて次のコードを追加します。最後の内容:

extension=ssh2.so

ファイルを保存して閉じます。

3. Web サーバーを再起動します
上記の手順を完了した後、新しい設定を有効にするために Web サーバーを再起動する必要があります。 Ubuntu および Debian では、次のコマンドを使用して Apache サーバーを再起動します。

sudo service apache2 restart

CentOS および Red Hat Enterprise Linux では、次のコマンドを使用して Apache サーバーを再起動します。

sudo service httpd restart

4. ssh2 拡張機能のテスト

ssh2 拡張機能が正しくインストールされているかどうかをテストするには、単純な PHP スクリプトを作成できます:

if (!function_exists("ssh2_connect")) die("SSH サーバーに接続できません。ssh2 拡張機能をインストールしてください。");
else echo "ssh2 拡張機能は正常に動作しました。";
?>
ssh2test.php として保存し、ブラウザでファイルにアクセスします。 「ssh2 拡張機能は正常に動作しました。」というメッセージが表示された場合は、ssh2 拡張機能が正常にインストールされ、正常に動作していることを意味します。

概要

SSH プロトコルを使用してリモート接続する場合、「PHP 致命的なエラー: 未定義関数 ssh2_exec() の呼び出し」というエラー メッセージが表示される場合は、ssh2 拡張機能をインストールし、ウェブサーバーです。この記事で説明されている手順に従って、ssh2 拡張機能が PHP アプリケーションで適切に動作していることを確認してください。

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

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