Tệp nhật ký lỗi httpd ở đâu trên Lion?


39

Tôi đang chạy một máy chủ web (phát triển) cục bộ trên máy Mac của mình với cài đặt apache.

Tôi chắc chắn rằng nó phụ thuộc vào cấu hình apache của tôi nhưng về cơ bản tôi chỉ muốn chạy tail -f /var/log/httpd-error.logtrong một thiết bị đầu cuối để tôi có thể thấy lỗi và cảnh báo xảy ra trong quá trình phát triển trang web của mình.

Vì vậy, câu hỏi của tôi là nơi hoặc làm thế nào để tôi tìm thấy nơi tệp nhật ký này được đặt vì nó không được đặt trong /var/log/

Câu trả lời:


59

Như morth đã chỉ ra, đối với bản cài đặt Mac OS X Apache mặc định, chúng được đặt trong : /var/log/apache2/error_log.

Vị trí có thể được thay đổi trong cấu hình httpd bằng cách sử dụng lệnh ErrorLog , ngay cả đối với các máy chủ ảo riêng lẻ. Cũng lưu ý rằng nếu bạn đã cài đặt một Apache khác ngoài cái tích hợp sẵn (như thông qua MacPorts hoặc MAMP), thì điều này có lẽ cũng khác với bạn. Trong trường hợp đó, bạn nên xem httpd.conf hoặc tương đương để cài đặt.

tip:Nếu bạn đã cài đặt Growl, hãy xem kịch bản ' growltail ' này. Tôi nghĩ thật tuyệt khi nhận được thông báo về lỗi trong khi phát triển mà không cần phải quay lại Terminal mọi lúc.


3
Không sư tử sử dụng apache2 và không apache trong / var / log để chứa nhật ký máy chủ web? Ngoài ra, ứng dụng Console trong / Ứng dụng / Tiện ích là trình xem nhật ký "Ca cao", nhưng nó không hữu dụng như đuôi đối với hầu hết các nhà phát triển ngoài việc khám phá nội dung của / var / log hoặc xem qua nhiều nhật ký trong thời gian ngắn.
bmike

6

/private/var/log/apache2/error_lognhững gì bạn đang tìm kiếm?


5

Nhật ký lỗi được đặt tại: /var/log/apache2/error.log

Cái này dành cho Lion ...


4

Nó bình thường /var/log/apache2/error_lognhưng ...

Lưu ý rằng có một số loại lỗi nhất định có thể xảy ra trước khi apache bắt đầu đăng nhập , điều này có thể khiến bạn tin rằng bạn đang nhìn nhầm chỗ. Nếu bạn dường như gặp khó khăn khi bắt đầu apache và nó không ghi lại bất kỳ lỗi mới nào, hãy thử thực hiện:

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

hay là thử

sudo apachectl -e debug

hoặc bỏ qua tập lệnh apachectl và thử chỉ

sudo httpd -k start

3

Các câu trả lời ở trên hoạt động rất tốt cho apache mặc định được cài đặt sẵn trên mac. Trong trường hợp của tôi, tôi đang sử dụng Apache (trên High Sierrra) được cài đặt qua Homebrew. Đây là quy trình tôi đã sử dụng để xác định vị trí nhật ký lỗi của mình:

>ps -ef |grep httpd

Điều này cung cấp một đầu ra với các dòng như thế này:

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

Điều đó cung cấp cho bạn vị trí của httpd thực thi. Bây giờ chạy:

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

Thay thế ở vị trí thực thi httpd của bạn. Bạn sẽ nhận được một cái gì đó như thế này (rút ngắn)

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"

Vậy "DEFAULT_ERRORLOG" nằm trong logs/error_log- nhưng liên quan đến cái gì?

Bây giờ hãy mở "SERVER_CONFIG_FILE"

Ở đó, tôi tìm thấy hai mục có thể hữu ích:

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

Vì vậy, trong một số trường hợp, DEFAULT_ERRORLOG có thể liên quan đến ServerRoot. Tuy nhiên, trong trường hợp của tôi, đã có ErrorLog được chỉ định rõ ràng (dòng thứ hai) và đó là nơi lỗi của tôi xảy ra.


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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.