apacheでsudo

apacheで以下のようなコマンド(sudo)を実行したい場合

$cmd = "sudo -H ls -l /";
$ret = shell_exec($cmd);

設定ファイルを編集

# visudo

ttyなしでsudoができる

コメントアウト
-)Defaults    requiretty
+)#Defaults    requiretty

パスワード無しで実行したいコマンドをカンマ区切りで記述

+)apache  ALL=(ALL) NOPASSWD: /bin/ls, /bin/chmod