0

でシェルスクリプトを実行しようとしてexecshell_exe何も起こりません! それらのコマンドlsまたはwhoamiすべての作業で実行すると。

どうなり得るか?

4

4 に答える 4

2

出力をエコーし​​ますか?

echo exec('ls');

セーフモードを有効にしていますか?

phpinfo();

はいの場合:(マニュアルから)

注:セーフモードが有効になっている場合、safe_mode_exec_dir内のファイルのみを実行できます。実用上の理由から、現在、実行可能ファイルへのパスに..コンポーネントを含めることは許可されていません。

execを呼び出してみてください

exec('...pathtoyourbashscript...', $out, $return);

それで

echo $return;

表示されている場合は127、パスが間違っている可能性があります。

また、権限を確認してください。ユーザー「nobody」はおそらくapacheユーザーであり、スクリプトにアクセスして実行するための権限が必要です。

を実行して権限を変更できます

chmod 755 pathtouyourscript

これは、「他の人がこのファイルを読んだり実行したりしてもかまいませんが、自分だけが変更できるはずです」のような意味です。

于 2012-06-04T16:17:37.827 に答える
0

リフレクションを使用して、機能が無効になっているかどうかを確認できますdisable_functions

$exec = new ReflectionFunction('exec');
print $exec->isDisabled() ? 'Disabled' : 'Enabled';
于 2012-06-04T22:09:03.457 に答える