>백엔드 개발 >PHP 문제 >nginx php-fpm이 PHP 오류 로그를 출력하는 방법

nginx php-fpm이 PHP 오류 로그를 출력하는 방법

藏色散人
藏色散人원래의
2020-08-13 09:19:152832검색

php fpm 출력 오류에 대한 구성 방법: 먼저 "php-fpm.conf" 파일을 연 다음 "error_log = log/error_log" 내용을 추가하고 "php.ini" 파일을 열고 "log_errors =" 내용을 추가합니다. On" ;마지막으로 다시 시작합니다.

nginx php-fpm이 PHP 오류 로그를 출력하는 방법

추천: "PHP 동영상 튜토리얼"

이 글은 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의 오류 로그를 볼 수 없습니다.

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 = //设置日志文件名

Program 위 설정을 수정하세요

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의 오류 로그에 기록됩니다
PHP의 오류 로그를 쓸 수 없으면 오류 내용이 FastCGI 인터페이스로 반환되고, nginx는 오류 반환을 받은 후 nginx의 오류 로그에 이를 기록합니다. FastCGI
PHP 5.3.9 이상 버전에서는 PHP는 오류가 발생한 후에만 PHP의 오류 로그에 쓰려고 시도합니다. 실패할 경우 FastCGI로 돌아가지 않고 오류 로그가 PHP의 오류 로그에 출력됩니다. -fpm.
그래서 PHP 오류 로그를 nginx 오류 로그에 출력하려면 php5.3.8 이전 버전을 사용해야 하며, 구성 파일에 있는 php의 error_log는 php 작업자 프로세스에서 쓸 수 없습니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.