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
폴더 아래에 파일을 생성하여 위의 라인을 추가하였다.
'000.프로그래밍 > 00. Personal Notes' 카테고리의 다른 글
passive 모드의 ftp 포트를 방화벽에서 차단하는 법 (0) | 2016.11.22 |
---|---|
iptables geoip 패키지 설치 (0) | 2016.11.21 |
VirusTotal API 사용하기 ( C# ASP.NET MVC ) - GET 방식 호출 (0) | 2015.10.29 |
[번역]MongoDB Tutorials - Overview (0) | 2015.05.07 |
개념 정리 (asp.net -1) (0) | 2015.02.11 |