PHP shell_exec() コマンドが見つかりません

PHP shell_exec() コマンドが見つかりません

PHPを使用してプログラムを実行する必要がありますが、問題のファイルはClustalW(clustalw2)です。私のApacheユーザーはフィッシュシェルを使用するhttpなので、clustalw2を/srv/http/Clustalフィッシュパスに移動してディレクトリを追加しました。
端末を使用してhttpにログインして実行すると、clustalw2 -INFILE=input_file -OUTFILE=output_fileすべてが期待どおりに機能します。
ただし、実行するたびにshell_exec('clustalw2 -INFILE=input_file -OUTFILE=output_file');何も起こらず、次のエラーログが表示されます。sh: line 1: clustalw2: command not found


私が実行した場合:

<?php
echo "USER: ".shell_exec('whoami')."<br>";
echo "SHELL: ".shell_exec('echo "$SHELL"')."<br>";
echo "WHICH clustalw2: ".shell_exec('which clustalw2');

出力:
ユーザー: http
shell:/usr/bin/fish
ここで clustalw2:


which clustalw2http ユーザーを使用して端末で実行する場合:

/srv/http/Clustalw/clustalw2

答え1

プログラムが存在しないclustalw2ため、プログラムが見つかりません。clustalw2$PATH

あなたの場合、最も簡単な解決策は次のようにフルパスclustalw2に置き換えることです。/srv/http/Clustalw/clustalw2shell_exec

関連情報