개발

php exec 로 외부 프로그램 실행시 stdout 문제

findstar 2011. 8. 1. 12:05
728x90

php에서 exec를 통해서 외부 프로그램을 실행시

출력 메세지를 도통 확인할 수가 없었다.

권한 문제나, nobody의 실행 권한 문제, php.ini 의 safe_mode_exec_dir 설정도 모두 살펴보았지만

특별한 문제가 없었다.

이유는 해당 외부 프로그램이 stdout stderr을 사용하지 않는다는데 있었다.

php_ini  error_message 를 E_ALL 로 해두었으나, 나타나지 않음

httpd error_log 를 살펴보고서야 거기서 나타난 메세지들을 확인할 수 있었다.

출력되는 out 이 error_log로 연결되어 있었다는 소리.

ls 나 다른 기본적인 프로그램을 실행되는데 내가 수행하려는 curl은 안되었다.

마지막 exec($command) 에서 $command 에 .= "  2>&1 "; 를 추가해주니 되었음.

기억해 두자... 이것때문에 3일 고생했네;;