2013-04-22 4 views
4

vhosts.conf에 쓰기 위해 php에서 exec 명령이 필요합니다. 내가 가진 하나 add_vhost.sh 파일 :암호없이 파일에서 PHP exec 명령

cat /home/www/test/conf/vhosts.conf >> /etc/httpd/conf.d/vhosts.conf 

이있다 PHP 스크립트 :

exec($path_to_add_vhost_sh_file, $output); 

내가이 파일을 간부 인하는 peter 사용자에 대한 암호 요구 사항을 설정하지 싶어, 그래서 난 내 /etc/sudoers

에서 다음 일을했다

peter ALL=(ALL)NOPASSWD:/home/www/test/conf/add_vhost.sh 콘솔에서도 여전히 작동하지 않습니다. 페도라

+4

웹 서버는 "피터"사용자로 실행되고? PHP의 명령 앞에'sudo'를 추가 했습니까? –

+0

아, 웹 서버가 www-data 아래에서 실행되는 것을 봅니다 :/ –

답변

6

웹 서버가 www-data 사용자의 사용자로 실행되는 경우 15 : 웹 서버의 사용자 이름으로

www-data ALL=(ALL:ALL) NOPASSWD: /path/to/your/script 

그렇지 않을 경우, 대체 www-data. PHP에서

sudo와 명령 줄을 씁니다 놓치지 마세요 :

exec('sudo /path/to/your/script'); 
+0

'www-data' 사용자는 웹 서버 사용자입니다. 감사합니다. –

+0

이것은 웹을 통해 스크립트를 실행하는 경우에만 적용됩니다. (나는 이것을 추측했다). 지금 작동합니까? – hek2mgl

+0

yes로'sudo path_to_script' –