>백엔드 개발 >PHP 튜토리얼 >nginx php-fpm 출력 PHP 오류 로그

nginx php-fpm 출력 PHP 오류 로그

angryTom
angryTom앞으로
2019-10-15 16:16:183768검색

nginx php-fpm 출력 PHP 오류 로그

nginx는 웹 서버이므로 nginx의 접속 로그에는 접속한 페이지만 기록되며, php 에러 로그 정보는 없습니다.

nginx는 처리를 위해 PHP에 대한 요청을 php-fpm fastcgi 프로세스로 보냅니다. 기본 php-fpm은 php의 오류 로그에서 볼 수 없는 php-fpm의 오류 메시지만 출력합니다. -fpm.php의 오류 로그로 이동

이유는 php-fpm 구성 파일 php-fpm.conf가 기본적으로 작업자 프로세스의 오류 출력을 끄고 /dev/null로 직접 리디렉션하기 때문입니다. , 그래서 우리는 nginx를 사용합니다. 오류 로그나 php-fpm의 오류 로그 모두 PHP 오류 로그를 볼 수 없습니다.

디버깅하는 것은 매우 고통스럽습니다. nginx에서 php-fpm이 PHP 오류 로그를 기록하지 않는 문제를 해결하는 방법:

1. php-fpm.conf에서 구성을 수정하고 #🎜🎜을 추가하세요. ##🎜🎜 #

catch_workers_output = yes
error_log = log/error_log

2. php.ini에서 구성을 수정하세요. 그렇지 않은 경우

log_errors = On
error_log = "/usr/local/lnmp/php/var/log/error_log"
error_reporting=E_ALL&~E_NOTICE

3을 추가하세요. . php-fpm#을 다시 시작하세요. 🎜🎜#

PHP에서 오류가 발생하면 "/usr/local/lnmp/php/var/log/error_log"에서 오류 로그를 볼 수 있습니다.
참고:

1. php-fpm.conf의 php_admin_value[error_log] 매개변수는 php.ini의 error_log 매개변수 를 덮어씁니다. phpinfo()를 보세요. 최종 error_log 파일에는 쓰기 권한이 있고 php_admin_value[error_log] 매개변수가 설정되지 않았습니다. 그렇지 않으면 오류 로그가 php-fpm의 오류 로그에 출력됩니다.


2. php.ini 위치를 찾을 수 없습니다. php의 phpinfo()를 사용하여 결과를 확인하세요.

3. PHP 오류 로그를 페이지 또는 화면으로 출력
php.ini

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 에러 로그에 출력됩니다
PHP 5.3.8 이하 버전에서는 PHP가 FastCGI를 통해 실행되고 사용자 접속 중 에러가 발생하면 먼저 PHP에 기록됩니다. errorlog#🎜🎜 #PHP의 오류 로그를 작성할 수 없는 경우 오류 내용이 FastCGI 인터페이스로 반환되고 nginx는 FastCGI에서 오류 반환을 받은 후 이를 nginx의 오류 로그에 기록합니다.

PHP 5.3.9 및 이후 버전에서는 오류가 발생한 후 PHP는 이를 PHP의 오류 로그에만 기록하려고 시도합니다. 실패할 경우 오류 로그는 php-fpm의 오류 로그에 출력되지 않습니다.

그래서 PHP 오류 로그를 nginx 오류 로그에 출력하려면 php5.3.8 이전 버전을 사용해야 하며, 구성 파일에 있는 php의 error_log는 php 작업자 프로세스에서 쓸 수 없습니다.

더 많은 PHP 관련 지식을 보려면
PHP中文网
을 방문하세요!

위 내용은 nginx php-fpm 출력 PHP 오류 로그의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제