Câu trả lời:
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
.
error.log.*
các tệp
Kiểm tra các cài đặt này trong php.ini
:
error_reporting = E_ALL | E_STRICT
(như được đề xuất để phát triển trong php.ini)error_log = /var/log/php_errors.log
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.
chmod 640 /var/log/php_errors.log
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.
error_log = syslog
bằng php.ini
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
và
~/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