영역 파일을 편집 중이고 /var/named/rpz.local
다음 명령을 실행한 후 rndc를 다시 로드해야 합니다.
루트 사용자로 cli를 사용하면 모든 것이 잘 작동하지만 문제는 nginx(PHP)를 통해 실행할 수 없다는 것입니다 /usr/sbin/rndc
. 그럼 나에게 단서를 주실 수 있나요?
다음을 실행할 수 있습니다:
으아악하지만 이 명령을 실행하면 출력은 비어 있습니다.
system('rndc 重新加载');
또는
shell_exec('rndc 相关');
실행할 수 없기 때문에 rndc
에 액세스할 수 없는 것 같습니다.
rndc 状态
하지만 이것을 실행하면:
uptime
and uptime
command. But there is nothing f或者 shell_exec('rndc reload')
라는 결과가 나왔습니다. 아래 명령도 수행했지만 작동하지 않았습니다.
cd /var/named rndc reload rpz.local
만약 Nginx에서 루트로 PHP를 실행하고 있다면 한 가지 심각한 문제가 있는 것입니다.
루트 사용자의 역할과 목적을 이해하려면 운영 매뉴얼을 참조하세요. 그런 다음 그에 따라 시스템을 관리하십시오.
짧게 말하면, 루트로 어떤 일을 할 수 있다고 해서 PHP 내에서 그 일을 해야 한다는 뜻은 아닙니다. 이유를 알아보세요. 진짜. 솔직히.
그렇지 않은 경우 운영 체제를 잘 아는 담당 시스템 관리자에게 문의하여 직접 요구사항을 명확히 하시기 바랍니다.
문제가 해결되었습니다. 어떻게? 달리려고 할 때
으아악rndc
命令时,我得到NULL
. 이 게시물에서 언급했듯이 명령을 다음과 같이 변경했습니다.그래서 제가 그랬어요:
으아악문제가 해결되었습니다.
정말 고마워요@hake
P.S @hake가 언급했듯이 nginx를 sudoer로 실행하거나 nginx를 sudoer 그룹에 추가하는 것이 잘못되었으므로 실수하지 마세요. 디버깅은 괜찮고 테스트는 가능합니다(1~2시간 이내).