development

PHP는 오류 로그를 어디에 저장합니까?

big-blog 2020. 2. 27. 22:20
반응형

PHP는 오류 로그를 어디에 저장합니까? (php5, 아파치, fastcgi, cpanel)


나는 공유 호스팅에 Cpanel, Apache, PHP가 fastcgi에 의해 운영되고 있습니다. PHP는 오류 로그를 어디에 저장합니까?

error_log 파일을 찾기 위해 전체 사이트 구조를 거치지 않고 공유 호스팅 환경에서 오류 로그를 찾을 수있는 다른 방법이 있습니까?

php.ini(PHP 버전 5.2.16을 사용 하고 있습니다)에 액세스 할 수 있습니다 .


PHP는 /var/log/apache2PHP가 apache2 모듈 인 경우 오류 로그를 저장 합니다. 공유 호스트는 종종 루트 디렉토리 /log하위 폴더 에 로그 파일을 저장합니다 . 그러나 ... php.ini파일에 액세스 할 수 있다면 다음과 같이 할 수 있습니다.

error_log = /var/log/php-scripts.log

rinogo 의 의견 에 따르면 : cPanel을 사용하는 경우 찾고있는 마스터 로그 파일은 (기본적으로)

/usr/local/apache/logs/error_log

다른 모든 방법이 실패하면 다음을 사용하여 로그 파일의 위치를 ​​확인할 수 있습니다

<?php phpinfo(); ?>

시도 phpinfo()와 "의 error_log"확인


리눅스

php --info | grep error 

터미널은 오류 로그 위치를 출력합니다.

윈도우

php --info | findstr /r /c:"error_log"

명령 프롬프트는 오류 로그 위치를 출력합니다

로그 위치를 설정하려면

를 열고 php.ini다음 줄을 추가하십시오.

error_log = /log/myCustomLog.log

이것에 대해 @chelmertez , @Boom 에게 감사 합니다 (질문에 대한 의견).


램프 환경에서 PHP 오류는 기본적으로 아래 파일로 지정됩니다.

/var/log/httpd/error_log

모든 액세스 로그는 다음과 같습니다.

/var/log/httpd/access_log

Linux에서 PHP 오류 로그를 찾는 방법 :

eric@dev /var $ sudo updatedb
[sudo] password for eric:
eric@dev /var $ sudo locate error_log

/var/log/httpd/error_log

또 다른 동등한 방법 :

eric@dev /home/eric $ sudo find / -name "error_log" 2>/dev/null

/var/log/httpd/error_log

php.ini 파일에서 error_log 변수를 설정할 때는 절대 경로를 사용해야 합니다. 그렇지 않으면 상대 경로에 따라 오류 로그가 저장됩니다.

error_log = /var/log/php.errors

다른 해결책은 디렉토리 트리의 모든 오류 로그 파일을 나열하는 간단한 스크립트를 작성하는 것입니다.


기본적으로 php 어디에서나 오류를 기록하지 않는 것으로 보입니다 error_log.php.ini 키는 내가 본 모든 설치에서 주석 처리됩니다.

일반적으로 나는 :

  1. php.ini 파일을 찾으십시오. locate php.ini.
  2. 이 파일에서 error_reporting값을 검색하십시오 .

    어느 것이 PHP 로그 레벨의 융합으로 충분하다면 설정해야합니다. ,

    예 : E_ALL & ~E_DEPRECATED & ~E_STRICT

  3. 검사 error_log가 실제 장소를 가리키는 및 주석 있지 않은지 확인하는 값입니다.

    기본값은 전체 경로를 제공하지 않고 파일 이름 만 제공 하므로이 경로가 정상적으로 해결되는 위치를 모르겠습니다. 아마 /var/log/.


/var/log/apache2/error.logGoogle 컴퓨팅 엔진을 사용하는 경우 에도 가능 합니다.

그리고 당신은 다음과 같이 꼬리를 볼 수 있습니다 :

tail -f /var/log/apache2/error.log

당신은 소스에서 빌드 아파치와 PHP를 가지고 있다면, 기본적으로 오류 로그는 생성된다 ${Apache install dir}/logs/error_log일반적으로 예 /usr/local/apache2/logs/error_log. 그렇지 않으면 저장소에서 설치 한 경우 /var/log/apache2/error_log경로를 찾을 수 있습니다. 경로를 설정 php.ini하고을 호출하여 확인할 수도 있습니다 phpinfo().


가장 좋은 방법은 httpd.conf 파일을보고 기본값이 무엇인지 확인하는 것입니다. 특정 가상 호스트에 의해 재정의 될 수도 있습니다. /etc/httpd/conf/httpd.confor 를보고 시작하여 /etc/apache2/httpd.conferror_log를 검색합니다. / var / log / httpd / error_log /var/log/apache2/error_log로 표시 될 수도 있고 간단히 표시 될 수도 있습니다 logs/error_log.

이 경우 상대 경로이므로 아래에 /etc/httpd/logs/error_log있습니다. 여전히 찾을 수 없으면 httpd.conf 파일의 맨 아래를 확인하고 가상 호스트가 포함 된 위치를 확인하십시오. /etc/httpd/conf.d/<-에 "other"또는 "extra"로있을 수 있습니다. 가상 호스트는 ErrorLog "/ path / to / error_log"로 가상 호스트를 재정의 할 수 있습니다.


NGINX는 보통 /var/log/nginx/error.log 또는 access.log에 저장합니다. (어쨌든 우분투에서)


php.ini에서 오류 로그 파일을 구성 할 때 절대 경로 또는 상대 경로를 사용할 수 있습니다. 상대 경로는 생성 스크립트의 위치에 따라 해결되며 스크립트가있는 각 디렉토리에 로그 파일이 표시됩니다. 모든 오류 메시지를 동일한 파일로 보내려면 절대 경로를 사용하십시오. 파일.

자세한 내용은 여기를 참조하십시오 : http://www.php.net/manual/en/ref.errorfunc.php#53025


php5-fpm 로그를 사용하는 경우 기본값은

/var/log/php5-fpm.log

php --info | grep error

도움이됩니다. 질문에 sjas가 댓글을 달았습니다. 그래서 나는 그것을 대답으로 포함시켰다.


원하는 곳에 함수 호출을 설정하면 error_log ($ errorMessageforLog. "\ n", 4, 'somePath / SomeFileName.som');


명령 행에서 ErrorLog실행 하여 httpd.conf 파일을 검색하십시오 cat <file location> | grep ErrorLog. 예를 들면 다음과 같습니다.

$ cat /etc/apache2/httpd.conf | grep ErrorLog

산출:

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
ErrorLog "/private/var/log/apache2/error_log"

로 시작하는 줄을 찾으십시오 ErrorLog.

참고 : 가상 호스트의 경우 가상 호스트 파일 httpd-vhosts.conf편집하여 다른 로그 파일 위치를 지정할 수 있습니다.


  1. 파일 관리자 확인 로그 폴더로 이동할 수 있습니다.
  2. public_html 폴더의 로그 파일을 확인하십시오.
  3. 로그가 저장되어있는 "php phpinfo ()"파일을 확인하십시오.

cPanel 오류 로그는 다음 위치에 있습니다.

/ usr / local / cpanel / logs /

/ usr / local / apache / logs /

기본적으로 Apche 로그는 다음과 같습니다.

/ var / log / apache

또는

/ var / log / apache2

누구나 사용자 정의 로그 위치를 사용하는 경우 다음 명령을 실행하여 위치를 확인할 수 있습니다.

고양이 / etc / apache2 / conf /httpd.conf | grep ErrorLog

apache2 디렉토리가 존재하지 않는다는 오류가 발생하면이 명령을 실행하여 올바른 위치를 찾을 수 있습니다.

아파치 어 is 어

또는

아파치 2


공유 환경에 있고 오류 로그를 찾을 수 없으므로 cPanel 대시 보드에서 cPanel에 옵션 오류가 있는지 항상 확인하십시오. 오류 로그를 찾을 수없는 경우 오류 로그를 찾을 수 있습니다.

cPanel 검색 막대에서 Error를 검색하면 기본적으로 다른 http 오류 페이지의 목록 인 Error Pages가 표시되고 다른 Error는 오류 로그가 표시되는 위치입니다.

공유 환경을 살펴볼 다른 장소 : / home / yourusername / logs / home / yourusername / public_html / error_log


워드 프레스

Wordpress가 true로 설정 되면 error_log()메시지를 /wp-content/debug.log표시 WP_DEBUG_LOG합니다.

WP_DEBUG_LOG에 대한 Wordpress Documentation을 참조하십시오.

참고 URL : https://stackoverflow.com/questions/5127838/where-does-php-store-the-error-log-php5-apache-fastcgi-cpanel



반응형