Lion에서 httpd 오류 로그 파일은 어디에 있습니까?


39

아파치가 설치된 Mac에서 로컬 웹 (개발) 서버를 실행하고 있습니다.

나는 그것이 아파치 구성에 달려 있다고 확신하지만 기본적으로 tail -f /var/log/httpd-error.log터미널에서 실행하고 싶기 때문에 웹 사이트 개발 중에 발생하는 오류와 경고를 볼 수 있습니다.

그래서 내 질문은이 로그 파일이 위치하지 않았기 때문에이 로그 파일의 위치 또는 위치를 찾는 방법입니다. /var/log/

답변:


58

morth가 지적했듯이 기본 Mac OS X Apache 설치의 경우 다음 위치에 있습니다 /var/log/apache2/error_log.

개별 가상 호스트의 경우에도 ErrorLog 지시문을 사용하여 httpd 구성에서 위치를 변경할 수 있습니다 . 또한 내장 된 것 이외의 다른 Apache를 설치 한 경우 (예 : MacPorts 또는 MAMP를 통해), 이는 아마도 다를 수도 있습니다. 이 경우 설치에 대한 httpd.conf 또는 이와 동등한 항목을 살펴 봐야합니다.

tip:Growl을 설치 한 경우이 ' growltail '스크립트도 살펴보십시오 . 항상 터미널로 다시 전환 할 필요없이 개발하는 동안 오류를 통보받는 것이 좋습니다.


3
Lion은 웹 서버 로그를 포함하기 위해 / var / log에서 apache2를 사용하지 않고 apache를 사용하지 않습니까? 또한 / Applications / Utilities의 콘솔 앱은 "Cocoa"로그 뷰어이지만 / var / log의 내용을 탐색하거나 여러 로그에서 짧은 시간 동안 들여다 보는 것 이외의 대부분의 개발자에게는 꼬리처럼 편리하지 않습니다.
bmike

6

/private/var/log/apache2/error_log당신이 찾고있는 무엇?



4

보통 /var/log/apache2/error_log이지만 ...

아파치가 로깅을 시작하기 전에 발생할 수있는 특정 유형의 오류가 있으므로 잘못된 위치를 찾고 있다고 생각할 수 있습니다. 아파치를 시작하는 데 문제가 있고 새로운 오류가 기록되지 않으면 다음을 수행하십시오.

sudo bash -x /usr/sbin/apachectl -k start

또는 시도

sudo apachectl -e debug

또는 apachectl 스크립트를 무시하고 그냥 시도하십시오

sudo httpd -k start

2

위의 답변은 Mac에 사전 설치된 기본 아파치에 효과적입니다. 필자의 경우 Homebrew를 통해 설치된 Apache (High Sierrra)를 사용하고 있습니다. 오류 로그를 찾는 데 사용한 절차는 다음과 같습니다.

>ps -ef |grep httpd

이것은 다음과 같은 줄로 출력을 제공합니다.

502 10587 10586   0 11:11AM ??         0:00.00 /usr/local/opt/httpd/bin/httpd -k start

httpd 실행 파일의 위치를 ​​알려줍니다. 이제 다음을 실행하십시오.

>/usr/local/opt/httpd/bin/httpd -V

httpd 실행 파일의 위치를 ​​대체합니다. 당신은 이와 같은 것을 얻을 것입니다 (단축)

Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/usr/local/Cellar/httpd/2.4.29_1"
 -D SUEXEC_BIN="/usr/local/opt/httpd/bin/suexec"
 -D DEFAULT_PIDLOG="/usr/local/var/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/usr/local/etc/httpd/mime.types"
 -D SERVER_CONFIG_FILE="/usr/local/etc/httpd/httpd.conf"

"DEFAULT_ERRORLOG"는 logs/error_log무엇과 관련이 있습니까?

이제 "SERVER_CONFIG_FILE"을여십시오.

거기에 도움이 될만한 두 가지 항목이 있습니다.

ServerRoot "/usr/local/opt/httpd"
ErrorLog "/usr/local/var/log/httpd/error_log"

따라서 어떤 경우에는 DEFAULT_ERRORLOG가 ServerRoot에 상대적 일 수 있습니다. 내 경우에는 ErrorLog가 명시 적으로 지정되어 있고 (두 번째 줄) 오류가 발생하는 곳입니다.


0
#/usr/sbin/httpd -V
Server version: Apache/2.2.24 (Unix)
Server built:   Aug 24 2013 21:10:43
Server's Module Magic Number: 20051115:31
Server loaded:  APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_FLOCK_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/private/var/run/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

#find / -name error_log
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.