>  기사  >  백엔드 개발  >  PHP 아파치 오류 로그를 활성화하는 방법

PHP 아파치 오류 로그를 활성화하는 방법

藏色散人
藏色散人원래의
2020-10-20 10:06:203606검색

php apache 오류 로그를 활성화하는 방법: 먼저 php-fpm.conf에서 구성을 수정한 다음 php.ini의 구성을 "log_errors = On"으로 수정하고 마지막으로 php-fpm을 다시 시작하세요.

PHP 아파치 오류 로그를 활성화하는 방법

권장: "PHP 비디오 튜토리얼"

nginx와 apache는 PHP 오류 로깅을 활성화합니다

LNMP 개발 환경은 최근 로컬에 구축되었습니다. 개발 중 프론트엔드의 정상적인 개발에 영향을 주지 않기 위해 PHP의 php.ini에 있는 일부 오류 메시지를 차단합니다. 그러나 이는 개발 중 일부 문제를 제때 디버깅할 수 없는 등 백엔드 개발의 일부 문제에 영향을 미칩니다.

nginx는 Apache와 다르므로 PHP 오류 로그를 직접 지정할 수 있습니다. 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]
; Note: the default prefix is /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
Gracefully shutting down php-fpm . done
Starting php-fpm [17-Apr-2014 18:40:52] ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry 'catch_workers_
[17-Apr-2014 18:40:52] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
[17-Apr-2014 18:40:52] ERROR: FPM initialization failed
failed

그런 다음 첫 번째 단계에서 해당 그룹에 구성을 주의 깊게 작성하십시오. 그렇지 않으면 위의 오류가 나타납니다:

ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry ‘catch_workers_output'
 
 
apache
 
display_errors

오류 에코, 일반적인 문구 개발 모드이지만 많은 애플리케이션은 프로덕션 환경에서 이 옵션을 끄는 것을 잊어버립니다. 오류 에코는 민감한 정보를 많이 노출시킬 수 있어 공격자의 다음 공격을 용이하게 합니다. 이 옵션을 끄는 것이 좋습니다.

display_errors = On

오류가 발생하면 오류가 보고되고 오류 메시지가 나타납니다.

dispaly_errors = Off

닫을 때 오류가 발생하면 서버 오류가 나타납니다. 하지만 오류 메시지는 나타나지 않습니다.

log_errors

정식 환경에서 사용하고 오류 정보를 로그에 기록하면 됩니다. 오류 에코를 꺼야 할 때입니다.

PHP 개발자의 경우 제품을 사용하고 나면 가장 먼저 해야 할 일은 이러한 오류로 인해 공개되는 경로, 데이터베이스 연결, 데이터 테이블 및 기타 정보로 인해 해커의 공격을 피하기 위해 display_errors 옵션을 끄는 것입니다.

제품을 사용하고 나면 필연적으로 오류 메시지가 나타나는데, 개발자에게 매우 유용한 이 정보를 어떻게 기록해야 할까요?

PHP의 log_errors를 켜기만 하면 됩니다. 기본적으로 Apache의 error.log 파일과 같은 웹 서버의 로그 파일에 기록됩니다.

물론 특정 파일에 오류 로그를 기록할 수도 있습니다.

위 내용은 PHP 아파치 오류 로그를 활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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