Di mana file log kesalahan httpd di Lion?


39

Saya menjalankan server web (pengembangan) lokal di mac saya dengan apache diinstal.

Saya yakin itu tergantung pada konfigurasi apache saya tetapi pada dasarnya saya hanya ingin menjalankan tail -f /var/log/httpd-error.logdi terminal sehingga saya dapat melihat kesalahan dan peringatan yang terjadi selama pengembangan situs web saya.

Jadi pertanyaan saya adalah di mana atau bagaimana cara menemukan di mana file log ini ditempatkan karena tidak ditempatkan /var/log/

Jawaban:


59

Sebagai Morth menunjukkan, untuk default Mac OS X Apache instalasi ini terletak di: /var/log/apache2/error_log.

Lokasi dapat diubah dalam konfigurasi httpd menggunakan direktif ErrorLog , bahkan untuk host virtual individu. Perhatikan juga bahwa jika Anda menginstal Apache lain selain yang terpasang (seperti melalui MacPorts, atau MAMP), ini mungkin berbeda untuk Anda juga. Dalam hal ini Anda harus melihat httpd.conf atau yang setara untuk instalasi Anda.

tip:Jika Anda telah menginstal Growl, lihat juga skrip ' growltail ' ini. Saya pikir itu bagus untuk mendapat pemberitahuan tentang kesalahan saat berkembang, tanpa harus beralih kembali ke Terminal setiap saat.


3
Bukankah singa menggunakan apache2 dan bukan apache di / var / log untuk memuat log server web? Selain itu, aplikasi Konsol di / Aplikasi / Utilitas adalah penampil log "Cocoa", tetapi tidak semudah ekor untuk sebagian besar pengembang selain untuk mengeksplorasi konten / var / log atau mengintip di beberapa log untuk jangka waktu pendek.
bmike

6

Apakah /private/var/log/apache2/error_logyang Anda cari?



4

Biasanya /var/log/apache2/error_logtapi ...

Perhatikan bahwa ada beberapa jenis kesalahan tertentu yang dapat terjadi sebelum apache mulai masuk , yang mungkin membuat Anda percaya bahwa Anda mencari di tempat yang salah. Jika Anda tampaknya kesulitan memulai apache, dan tidak mencatat kesalahan baru, coba lakukan:

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

atau coba

sudo apachectl -e debug

atau memotong skrip apachectl dan coba saja

sudo httpd -k start

3

Jawaban di atas berfungsi dengan baik untuk apache default yang sudah diinstal sebelumnya pada mac. Dalam kasus saya, saya menggunakan Apache (pada High Sierrra) yang diinstal melalui Homebrew. Inilah prosedur yang saya gunakan untuk menemukan log kesalahan saya:

>ps -ef |grep httpd

Ini memberikan output dengan garis-garis seperti ini:

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

Itu memberi Anda lokasi executable httpd. Sekarang jalankan:

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

Mengganti di lokasi httpd Anda dapat dieksekusi. Anda akan mendapatkan sesuatu seperti ini (disingkat)

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"

Jadi "DEFAULT_ERRORLOG" di logs/error_log- tetapi relatif terhadap apa?

Sekarang buka "SERVER_CONFIG_FILE"

Di sana, saya menemukan dua entri yang mungkin membantu:

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

Jadi dalam beberapa kasus, DEFAULT_ERRORLOG mungkin relatif terhadap ServerRoot. Dalam kasus saya, ada ErrorLog ditentukan secara eksplisit (baris kedua) dan di situlah kesalahan saya terjadi.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.