이 글은 nginx 서버에서 PHP 오류 로그를 출력하기 위해 php-fpm을 구성하는 방법을 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.
nginx는 웹 서버일 뿐이므로 nginx의 접속 로그에는 접속한 페이지만 기록되며, php는 존재하지 않습니다. 오류 로그 정보.
nginx는 처리를 위해 php-fpm fastcgi 프로세스에 php에 대한 요청을 보냅니다. 기본 php-fpm은 php-fpm 오류에서 php-fpm의 오류 메시지만 출력합니다.
로그에서 php의 오류 로그를 볼 수 없습니다. 이유:
php-fpm의 구성 파일 php-fpm.conf는 기본적으로 작업자 프로세스의 오류 출력을 닫고 /dev/로 직접 리디렉션합니다. null이므로 nginx 오류가 발생했습니다.
php-fpm의 로그나 오류 로그 모두 php의 오류 로그를 볼 수 없습니다.
php-fpm이 nginx에서 PHP 오류 로그를 기록하지 않는 문제를 해결하는 방법:
1. php-fpm.conf에서 구성을 수정하고
코드 복사코드 예:
catch_workers_output = yeserror_log = log/error_log
코드 복사코드 예:
log_errors = Onerror_log = "/usr /local/lnmp/php/ var/log/error_log"
error_reporting=E_ALL&~E_NOTICE
PHP에서 오류가 발생하면 오류 로그를 볼 수 있습니다. "/usr/local/lnmp/ php/var/log/error_log"
1. php-fpm.conf의 php_admin_value[error_log] 매개변수는 php의 error_log 매개변수를 덮어씁니다. ini
따라서 phpinfo()에서 볼 수 있는 최종 error_log 파일에 쓰기 가능한 권한이 있고 php_admin_value[error_log] 매개변수가 설정되지 않았는지 확인하세요. 그렇지 않으면 오류 로그가 php-fpm의 오류 로그에 출력됩니다.
코드 복사코드 예:
display_errors = off // 오류 정보를 표시하지 않음(페이지나 화면에 출력하지 않음)log_errors = on //오류 정보 기록(로그 파일에 저장)
error_reporting = E_ALL //모든 오류 정보 캡처
error_log = // 로그 파일 이름 설정
프로그램에서 위 구성 수정
코드 복사코드 예:
ini_set("display_errors",0)ini_set("error_reporting",E_ALL) //이 값 PHP 상수인 것 같습니다
ini_set("error_log","
ini_set("log_errors",1);
4. PHP 오류 로그를 nginx로 출력하는 방법