ホームページ >バックエンド開発 >PHPチュートリアル >「shell_exec」を使用して PHP から呼び出されたときに Bash スクリプトが実行に失敗するのはなぜですか?
この質問では、PHP 開発者が Shell_exec を使用して PHP から bash スクリプトを実行しようとしています。使用される構文は次のとおりです:
<code class="php">$output = shell_exec("./script.sh var1 var2");</code>
ただし、このコマンドを呼び出すとスクリプトの実行に失敗します。
この問題をデバッグするには、失敗の原因を特定することが重要です。 ./script.sh var1 var2 を使用してコマンド ラインから実行するとスクリプトは正常に実行されるため、問題は PHP コード内にある可能性があります。
スクリプトの実行エラーを引き起こす可能性がある一般的な問題の 1 つは、ディレクトリのアクセス許可またはパスが正しくないことです。 。 PHP スクリプトでは、多くの場合、外部コマンドを実行する前に、正しい作業ディレクトリを設定する必要があります。これを解決するには、shell_exec を呼び出す前に、コードで chdir を使用して正しいディレクトリを指定します。
次のスニペットは、この問題に対処します。
<code class="php">$old_path = getcwd(); chdir('/my/path/'); $output = shell_exec('./script.sh var1 var2'); chdir($old_path);</code>
この例では、
正しいディレクトリが配置されていることを確認することで、この変更されたコードは PHP から bash スクリプトを正常に実行できるはずです。
以上が「shell_exec」を使用して PHP から呼び出されたときに Bash スクリプトが実行に失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。