ไฟล์บันทึกข้อผิดพลาด httpd บน Lion อยู่ที่ไหน


39

ฉันใช้เซิร์ฟเวอร์ในพื้นที่ (การพัฒนา) บน mac ของฉันโดยมี apache ติดตั้งอยู่

ฉันแน่ใจว่ามันขึ้นอยู่กับการกำหนดค่า apache ของฉัน แต่โดยทั่วไปฉันแค่ต้องการที่จะทำงานtail -f /var/log/httpd-error.logใน terminal เพื่อให้ฉันสามารถเห็นข้อผิดพลาดและคำเตือนที่เกิดขึ้นในระหว่างการพัฒนาเว็บไซต์ของฉัน

ดังนั้นคำถามของฉันอยู่ที่ไหนหรืออย่างไรฉันจะค้นหาตำแหน่งของแฟ้มบันทึกนี้ได้อย่างไรเนื่องจากไม่ได้วางไว้ /var/log/

คำตอบ:


59

ในฐานะที่เป็น morth ชี้สำหรับการติดตั้งเริ่มต้น Mac OS X Apache /var/log/apache2/error_logเหล่านี้จะอยู่ใน:

ตำแหน่งสามารถเปลี่ยนแปลงได้ในการกำหนดค่า httpd โดยใช้คำสั่ง ErrorLogแม้สำหรับโฮสต์เสมือนแต่ละรายการ โปรดทราบว่าหากคุณติดตั้ง Apache อื่นนอกเหนือจากในตัว (เช่นผ่าน MacPorts หรือ MAMP) สิ่งนี้อาจแตกต่างกันสำหรับคุณ ในกรณีนี้คุณควรดู httpd.conf หรือเทียบเท่าสำหรับการติดตั้งของคุณ

tip:หากคุณติดตั้ง Growl แล้วให้ดูที่สคริปต์ ' growltail ' นี้ ฉันคิดว่าเป็นการดีที่ได้รับแจ้งข้อผิดพลาดขณะพัฒนาโดยไม่จำเป็นต้องเปลี่ยนกลับไปที่ Terminal ตลอดเวลา


3
lion ไม่ได้ใช้ apache2 และไม่ใช่ apache ใน / var / log เพื่อเก็บบันทึกเว็บเซิร์ฟเวอร์หรือไม่ นอกจากนี้แอป Console ใน / Applications / Utilities เป็นตัวดูบันทึก "Cocoa" แต่มันไม่สะดวกเท่านักพัฒนาส่วนใหญ่ที่นอกเหนือจากการสำรวจเนื้อหาของ / var / log หรือมองดูบันทึกหลายรายการสำหรับระยะเวลาสั้น ๆ
bmike



4

เป็นปกติ/var/log/apache2/error_logแต่ ...

โปรดทราบว่ามีข้อผิดพลาดบางประเภทที่สามารถเกิดขึ้นได้ก่อนที่ apache จะเริ่มการบันทึกซึ่งอาจทำให้คุณเชื่อว่าคุณกำลังมองหาที่ผิด หากคุณดูเหมือนจะมีปัญหาในการเริ่มต้น apache และมันไม่ได้บันทึกข้อผิดพลาดใหม่ลองทำ:

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

หรือลอง

sudo apachectl -e debug

หรือข้ามสคริปต์ apachectl และลองเพียง

sudo httpd -k start

3

คำตอบข้างต้นใช้งานได้ดีสำหรับ apache เริ่มต้นที่ติดตั้งมากับเครื่อง mac ในกรณีของฉันฉันใช้ Apache (บน High Sierrra) ติดตั้งผ่าน Homebrew นี่คือขั้นตอนที่ฉันใช้เพื่อค้นหาบันทึกข้อผิดพลาดของฉัน:

>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.