HƯỚNG DẪN Log tất cả các lỗi tới một tập tin Log

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 15/12/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    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:

    [​IMG]
     

Chia sẻ trang này

Đang tải...