PHP cung cấp các giải pháp đơn giản nhưng hiệu quả để log tất cả các lỗi cho một tập tin log. Trên tất cả các máy chủ web, bạn phải tắt hiển thị lỗi cho người dùng cuối thông qua một trình duyệt web. Log PHP cung cấp cho ta rất nhiều thông tin về đường dẫn, lược đồ cơ sở dữ liệu và các loại khác của thông tin nhạy cảm. Bạn được khuyên nên sử dụng error log ở vị trí của lỗi hiển thị trên các trang web. Ý tưởng là khá đơn giản, chỉ có nhà cung cấp hay quản trị mới có thể thấy error log. Tìm ra đường dẫn đến php.ini Các đường dẫn mặc định như sau cho hệ thống Unix phổ biến là: CentOS Linux/RHEL v5.x/6.x/7.x : /etc/php.ini Ubuntu / Debian Linux (PHP 7 fpm) : /etc/php/7.0/fpm/php.ini Ubuntu / Debian Linux (PHP 5.6 fpm) : /etc/php/5.6/fpm/php.ini Ubuntu / Debian Linux (PHP 7 with Apache 2) : /etc/php/5.6/apache2/php.ini Ubuntu / Debian Linux (PHP 5.6 with Apache 2) : /etc/php/7/apache2/php.ini FreeBSD unix server v9.x/10.x+: /usr/local/etc/php.ini Bạn có thể sử dụng lệnh sau đây để tìm ra đường dẫn đến php.ini: Mã: php5-cgi -i | grep php.ini Ví dụ kết quả đầu ra: Mã: <tr><td class="e">Loaded Configuration File </td><td class="v">/etc/php5/cgi/php.ini </td></tr> php-fpm5.0 -i | grep php.ini php-fpm7.0 -i | grep php.ini Ví dụ kết quả đầu ra: Mã: Configuration File (php.ini) Path => /etc/php/7.0/fpm Loaded Configuration File => /etc/php/7.0/fpm/php.ini Làm thế nào để log tất cả các lỗi đến một tập tin? Chỉ cần thêm dòng sau đây đến /etc/php.ini để log error vào tập tin được chỉ định, ví dụ như tập tin /var/log/php-scripts.log hoặc /var/log/httpd/php-error.log: Mã: vi /etc/php.ini Tìm và sửa đổi chỉ thị error_log như sau: Mã: error_log = /var/log/php-scripts.log Hãy chắc chắn rằng display_errors thiết lập là Off (không có lỗi cho người dùng cuối): Mã: display_errors = Off Lưu lại và đóng tập tin. Khởi động lại máy chủ web và dịch vụ php7-fpm: Mã: /etc/init.d/httpd restart Hoặc: Mã: systemctl restart httpd.service Mã: restart php7.0-fpm Làm thế nào để log error đến syslog hoặc Windows Server Event Log? Sửa error_log như sau: Mã: error_log = syslog Làm thế nào để xem các log? Đăng nhập sử dụng ssh hoặc tải về một tập tin log /var/log/php-scripts.log sử dụng client SFTP: Mã: tail -f /var/log/php-scripts.log Ví dụ kết quả đầu ra: