あなたはあなたが私はPHPから スクリプトを実行するときにコマンドが動作しますが、「AWK」コマンドである「カット」しません
を言ったが、どのようにデバッグ最初
学ぶべきですターミナルから実行したとき:
どのようにすればいいですか?
は実際に
$ php -r 'exec("su -c sh /path/to/my/script/test.sh");'
su: user /path/to/my/script/test.sh does not exist
あなたは構文の下の最初の必要性のコードに
// basic : stdin (0) stdout (1) stderr (2)
exec('your_command 2>&1', $output, $return_status);
// to see the response from your command
// su: user /path/to/my/script/test.sh does not exist
print_r($output);
をデバッグ中に覚えているCLIで、以下のようなエラーがスローされます:
[[email protected] Desktop]$ su
Password:
[[email protected] Desktop]# pwd
/home/akshay/Desktop
[[email protected] Desktop]# exit
exit
[[email protected] Desktop]$ su -
Password:
[[email protected] ~]# pwd
/root
を促しています
ソリューション:
あなたは(を使用しないパスワードプロンプトなしでスクリプトを実行可能にするべきですあなたは/etc/sudoers
# which awk => give you awk path
# same use in your script also, or else set path variable
www-data ALL=NOPASSWD: /path/to/my/script/test.sh, /bin/cut, /usr/bin/awk
に以下のようなエントリを作成することがApacheのユーザーがあなたのスクリプトといくつかのコマンドを実行できるようにする使用sudo
)
だから、それは次のようになります。返信用
// assuming your script is executable
exec("sudo /path/to/my/script/test.sh 2>&1", $output);
print_r($output);
おかげで、出力$ outputと$ return_statusはそれぞれ "Array"と "0"であり、問題がないことを意味します。私はAndroid Linux(私はSSHelperアプリケーションでアンドロイドにssh)を使用していることを言及するのを忘れていました。 PHPの場合、私はKSWEBアプリを使用しています。 –