Các tệp nhật ký Apache và PHP ở đâu?


228

Tôi đã cài đặt Apache, PHP và MySQL trên phiên bản máy tính để bàn Ubuntu 10.10 và nó hoạt động tốt.
Ngoại trừ tôi không biết nơi để tìm các tệp nhật ký Apache hoặc PHP.

Câu trả lời:


315

Theo mặc định , /var/log/apache2/error.log.

Điều này có thể được cấu hình trong /etc/php5/apache2/php.ini.


Vâng. hiểu rồi. nó là một chút khác nhau trên các cửa sổ.
Stann

1
Nhật ký Apache có thể được xoay vòng, vì vậy bạn có thể muốn kiểm tra tất cả error.log.*các tệp
nuoritoveri

@misterben bạn có thể giúp tôi tìm kích hoạt nhật ký lỗi tương tự cho centOS 7 không? ý tưởng nào không?
Chai màu đỏ

unix.stackexchange.com/a/269090/2799 có thông tin cho các bản phát hành khác
misterben

Điều gì nếu apache không được cài đặt, chỉ là php?
mils

67

Kiểm tra các cài đặt này trong php.ini:

  1. error_reporting = E_ALL | E_STRICT (như được đề xuất để phát triển trong php.ini)
  2. error_log = /var/log/php_errors.log
  3. Sau đó tạo tệp nhật ký bằng tay

    touch /var/log/php_errors.log
    chown www-data: /var/log/php_errors.log
    chmod +rw /var/log/php_errors.log
    

Bây giờ bạn có thể xem lỗi PHP bằng cách này

tail /var/log/php_errors.log

Đây là một giải pháp dễ chịu cho vấn đề này đối với tôi.


4
cũng sẽ cần một bước để khởi động lại apache để các cài đặt có hiệu lực
rbawaskar

Giữ chặt:chmod 640 /var/log/php_errors.log
berbt

26

Bạn cũng có thể định nghĩa một tệp nhật ký lỗi cụ thể cho từng Virtualhost trong Apache. Nếu bạn có bất kỳ Virtualhost nào được xác định /etc/apache2/sites-available/và bật /etc/apache2/sites-enabled(bật với sudo a2ensite [your-virtualhost-definition-file]), bạn có thể thay đổi nhật ký lỗi bằng cách thêm dòng sau vào cấu hình Virtualhost của bạn:

ErrorLog ${APACHE_LOG_DIR}/[your-vhost]-error.log

Điều đó có thể hữu ích nếu bạn có nhiều vhost và muốn phân chia nơi họ báo cáo lỗi.

Ngoài ra, bạn có thể xem nhật ký lỗi của mình trực tiếp bằng cách ban hành lệnh sau (thích ứng với tệp nhật ký của riêng bạn nếu khác với mặc định):

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

Điều này đặc biệt hữu ích khi thực hiện gỡ lỗi trực tiếp.


Nó hoạt động! Nếu tôi nhận xét error_log = syslogbằng php.ini
mmv-ru

2

Nếu Apache được thiết lập với Webmin / Virtualmin, có một thư mục riêng cho mỗi Virtualhost.

Nó là

~/logs

thư mục cho mỗi người dùng Virtualhost.

Đây là hai tệp:

~/logs/access_log

~/logs/error_log

Vậy họ là

/home/onedomain/logs/access_log

/home/onedomain/logs/error_log

/home/anotherdomain/logs/access_log

/home/anotherdomain/logs/error_log

...

Vân vân.

Để xem tệp nhật ký cho từng tên miền cụ thể đăng nhập với tư cách là chủ sở hữu Virtualhost của tên máy chủ đó và chạy

tail -f ~/logs/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.