nginx는 apache와 다릅니다. apache에서는 php의 에러 로그를 직접 지정할 수 있기 때문에 php 실행 중 에러 정보가 php의 에러 로그에 직접 입력되어 쉽게 조회할 수 있습니다.
nginx에서는 다음과 같이 됩니다. nginx는 페이지 방문에 대한 액세스 로그만 기록합니다. PHP 오류 로그 정보는 없습니다. nginx는 처리를 위해 php-fpm fastcgi 프로세스에 php에 대한 요청을 보냅니다. 기본 php-fpm은 php-fpm의 오류 메시지만 출력하며 php의 오류 로그는 php-fpm의 오류 로그에서 볼 수 없습니다.
이유는 php-fpm 구성 파일 php-fpm.conf가 기본적으로 작업자 프로세스의 오류 출력을 끄고 /dev/null로 직접 리디렉션하므로 nginx 오류 로그와 php-fpm 오류 로그가 모두 있기 때문입니다. .php 오류 로그를 볼 수 없습니다.
따라서 php-fpm이 nginx에서 어떻게 PHP 오류 로그를 기록하지 않는지 확인하려면 다음 설정을 지정해야 합니다.
1. 그렇지 않은 경우 php-fpm.conf에서 구성 을 수정하세요.
코드를 복사하세요.
[global]
; 참고: 기본 접두사는 /usr/local/php/var
error_log = log/php_error_log
[www]
catch_workers_output = yes
2입니다. . php.ini 구성 을 수정하세요. 그렇지 않은 경우 다음을 추가하세요.
코드 복사 코드는 다음과 같습니다.
log_errors = on
error_log = "/usr/local/php/var/log/error_log"
error_reporting=e_all& ~e_notice
3. php-fpm을 다시 시작하세요
php에서 오류가 발생하면 "/usr/local/lnmp/php/var/log/php_error_log"
에서 오류 로그를 볼 수 있습니다.
코드를 복사하세요. 코드는 다음과 같습니다:
[root@localhost etc]# service php-fpm restart
graceously shutdowning php-fpm done
starting php-fpm [17-apr-2014 18:40: 52] 오류: [/usr/local/php/etc /php-fpm.conf:5] 알 수 없는 항목 'catch_workers_
[17-apr-2014 18:40:52] 오류: 구성 파일 '/usr/을 로드하지 못했습니다. local/php/etc/php-fpm.conf'
[17-apr-2014 18:40:52] error: fpm 초기화 실패
failed
그런 다음 첫 번째 단계에서 해당 그룹에 구성을 주의 깊게 작성하십시오. 그렇지 않으면 위의 메시지가 나타납니다.
코드 복사 코드는 다음과 같습니다.
error: [/usr/local/php/etc/php-fpm.conf:5] 알 수 없는 항목 'catch_workers_output'
마지막으로 살펴보세요 결과:
위 내용은 Nginx에서 PHP-FPM을 사용할 때 PHP 오류 로그를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!