php 명령어로 api 파일을 실행 시켰을 때 정상적인 결과를 출력하지만 curl 명령어 혹은 브라우저로 확인 했을 시에 아무 결과값도 리턴하지 않았다.


/var/log/httpd/ 아래의 에러로그 확인 결과 


sudo: no tty present and no askpass program specified


라는 에러 로그를 확인 하였다.


이 때 브라우저로 php 파일을 여는 user가 누구인지 확인 해야하는데, 처음에는 nobody로 접속하는 것으로 추측하고 nobody 계정에 권한을 주어야하나 고민 했으나 


echo shell_exec("whoami");


로 확인 하였을 때 apache user로 접근 하는 것을 확인 할 수 있었다.


따라서 


/etc/sudoers


파일 맨 아래 줄에


apache ALL=(ALL) NOPASSWD:ALL


를 추가하여 apache에서 sudo를 사용하여 모든 명령어를 사용할 수 있도록 설정하였다. 또는 /etc/sudoers.d

폴더 아래에 파일을 생성하여 위의 라인을 추가하였다.

Posted by Righ
,