2011-12-22 2 views
2

PHP로 액세스하여 nginx를 다시로드해야합니다. 명령은 nginx -s reload이므로 sudoers 파일의 항목이 정확합니까?sudoers 파일이 nginx를 다시로드하기위한 PHP 액세스 권한을 부여하는 올바른 항목입니까?

www-data ALL=NOPASSWD: nginx -s reload

그런 다음 <?php exec('sudo nginx -s reload'); ?>는 또는 함수가 사용하는 shell_exec 것?

감사

+0

을 사용 을 수 있을까요? 확실히 말할 수는 없지만 상식적으로는 스크립트를 실행하고있는 서버를 죽이고 재시작하는 스크립트가 현명한 방법은 아닙니다. – GordonM

+0

@GordonM 그렇지 않을 수도 있습니다. Nginx는 실제로 PHP를 다루지 않으며, 실제로 프록시 역할을합니다. 특히 php-fpm 또는 php-cgi (nginx에서 PHP를 처리하는 일반적인 방법)를 사용하는 경우 스크립트를 실행하기 위해 생성 스레드를 처리합니다. 그는 살인/nginx를 다시 시작 안전합니다. – Grexis

+1

@ GordonM, 예, 웹 서버 (nginx)에서 실행되는 스크립트에서 발생합니다. 나는 상식에 대한 코멘트를 주셔서 감사하지만, 왜 nginx -s reload가 무엇인지 확인하지 않으 셨는지 확실하지 않은 경우. /etc/init.d/nginx restart와 다른 점은 서버를 종료하고 다시 시작한다는 것입니다. 우리는 php-fpm을 실행 중이고 때때로 nginx를 다시로드하여 새 설정을 다시 시작하지 않고로드해야합니다. – Anagio

답변

1

나는 nginx에 절대 경로를 사용한다, 그러나 당신의 구문은 올바른 보인다. 이 웹 서버에서 실행되는 스크립트 내에서 당신은 shell_exec()

+0

감사합니다. nginx -s 리로드를 특별히 실행할 필요가 있다고 생각했지만 절대 경로를 사용하여 방금 -s 플래그없이 nginx reload를 실행할 수 있음을 알았습니다. – Anagio