ホームページ  >  記事  >  バックエンド開発  >  Bash スクリプトが PHP から実行されないのはなぜですか?

Bash スクリプトが PHP から実行されないのはなぜですか?

DDD
DDDオリジナル
2024-11-04 21:00:02738ブラウズ

Why are My Bash Scripts Not Executing from PHP?

PHP からの Bash コマンドの実行: 実行されないスクリプトのトラブルシューティング

ユーザーが PHP ファイルから Bash スクリプトを実行する際に問題が発生しています。 shell_exec と system を使用しようとしても、スクリプトは実行されないままになります。ただし、「ls」などの他のコマンドは、shell_exec を使用すると正しく機能します。

考えられる原因と解決策:

この問題は、間違ったディレクトリからスクリプトを実行したことが原因である可能性が高くなります。これを解決するには、スクリプトを実行する前に、現在の作業ディレクトリをそのスクリプトが存在するディレクトリに変更する必要があります。これにより、スクリプトを実行するための正しいコンテキストが確保されます。

コード スニペット:

次のコード スニペットは、Bash スクリプトを正しく実行する方法を示します:

<code class="php">$old_path = getcwd();
chdir('/my/path/'); // Change to the script's directory
$output = shell_exec('./script.sh var1 var2');
chdir($old_path); // Return to the previous working directory</code>

このコードでは、getcwd() は現在の作業ディレクトリを取得し、chdir('/my/path/') は作業ディレクトリをスクリプトのパスに設定し、shell_exec('./script.sh var1 var2') は指定された引数を使用してスクリプトを実行すると、chdir($old_path) は前の作業ディレクトリに戻ります。

以上がBash スクリプトが PHP から実行されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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