Hướng Dẫn Chi Tiết Xem Và Phân Tích WordPress PHP-FPM Log Để Debug Lỗi Hiệu Quả

wordpress php-fpm log

Khi vận hành một website WordPress, việc gặp lỗi 500 Internal Server Error, màn hình trắng (White Screen of Death) hoặc thời gian tải trang chậm bất thường là điều không thể tránh khỏi. Để chẩn đoán chính xác nguyên nhân, dữ liệu trong WordPress PHP-FPM log chính là nguồn thông tin quan trọng và đáng tin cậy nhất. Đây là bản ghi chi tiết từ nhánh FastCGI Process Manager của PHP, ghi lại tất cả các cảnh báo, lỗi cú pháp, lỗi bộ nhớ hay thậm chí là thông tin debug do chính mã nguồn WordPress hoặc plugin tạo ra. Hiểu và khai thác được file log này sẽ giúp bạn tiết kiệm hàng giờ đồng hồ mò mẫm.

PHP-FPM Log Là Gì? Vai Trò Của Nó Trong Hệ Thống WordPress

wordpress php-fpm log - Hình 5

PHP-FPM (FastCGI Process Manager) là một giải pháp xử lý PHP hiện đại, thay thế cho mod_php truyền thống. Khi một request đến WordPress, PHP-FPM sẽ khởi tạo một worker process để thực thi mã PHP. Nếu trong quá trình đó xảy ra lỗi (ví dụ: cú pháp sai, hàm gọi không tồn tại, hết bộ nhớ), thay vì im lặng, PHP-FPM sẽ ghi lại thông tin lỗi vào một file text. File này được gọi là WordPress PHP-FPM log (thường nằm trong thư mục /var/log/php-fpm/ hoặc /var/log/php/).

    • Log lỗi PHP-FPM khác với log lỗi của web server Nginx hay Apache. Nếu web server log cho bạn biết “có lỗi 500 tại URL nào”, thì PHP-FPM log cho bạn biết tại sao lại có lỗi 500 đó – chẳng hạn như “Allowed memory size of 134217728 bytes exhausted” (hết bộ nhớ 128MB).
    • Khi kết hợp với WordPress debug mode, log PHP-FPM còn hiển thị các deprecated function, cảnh báo từ plugin, theme, giúp bạn chủ động bảo trì website trước khi lỗi nghiêm trọng xảy ra.

    Vị Trí Mặc Định Của File WordPress PHP-FPM Log

    wordpress php-fpm log - Hình 4

    Vị trí file log không cố định, phụ thuộc vào hệ điều hành và cách cấu hình PHP-FPM. 4 – 8.x) /var/log/php-fpm.log (hoặc /var/log/php8.x-fpm.log) CentOS / RHEL / AlmaLinux /var/log/php-fpm/www-error.log (cho pool mặc định) cPanel / WHM /var/log/php-fpm/error.log (hoặc theo từng pool user) WP Engine / Cloudways (máy chủ ảo) Thường được truy cập qua control panel của nhà cung cấp, không phải SSH Docker container /var/log/php-fpm/ hoặc stderr của container

    Nếu bạn không tìm thấy file log ở những đường dẫn trên, hãy kiểm tra file cấu hình PHP-FPM: /etc/php/{version}/fpm/pool.d/www.conf. Tìm dòng catch_workers_output = yesphp_admin_value[error_log] = /path/to/your/log. Chính xác, thông số catch_workers_outputphp_admin_value[error_log] quyết định vị trí và việc ghi log có được bật hay không.

    Cách Thiết Lập Và Kích Hoạt WordPress PHP-FPM Log Đúng Cách

    wordpress php-fpm log - Hình 3

    Trước khi có thể dùng log để debug, bạn cần đảm bảo tính năng ghi log được bật và cấu hình phù hợp với nhu cầu.

    1. Kích hoạt ghi log trong file www.conf

    Mở file cấu hình pool của bạn (ví dụ: /etc/php/8.3/fpm/pool.d/www.conf) và kiểm tra hoặc thêm các dòng sau:

    • catch_workers_output = yes – bắt buộc để PHP-FPM ghi lại stderr của worker vào file log. Nếu để “no”, mọi lỗi PHP sẽ bị im lặng.
    • php_admin_value[error_log] = /var/log/php-fpm/wordpress-error.log – chỉ định đường dẫn log riêng cho website WordPress, tránh lẫn với các site khác.
    • php_admin_flag[log_errors] = on – bật ghi lỗi PHP vào file đã chỉ định (tương đương với `log_errors = On` trong php.ini).

    Sau khi sửa, nhớ khởi động lại dịch vụ PHP-FPM: sudo systemctl restart php8.3-fpm (thay phiên bản PHP phù hợp).

    2. Cấu hình WordPress Debug Mode

    Để log PHP-FPM ghi nhận cả các cảnh báo từ WordPress (deprecated, notice, warning), bạn cần bật WP_DEBUG trong file wp-config.php:

    • Thêm dòng: define('WP_DEBUG', true);
    • Thêm dòng: define('WP_DEBUG_LOG', true); – nếu muốn WordPress ghi log riêng vào wp-content/debug.log. Nhưng dù không dùng WP_DEBUG_LOG, các lỗi vẫn xuất hiện trong PHP-FPM log nếu log_errors được bật.
    • Lưu ý: khi debug xong, tắt WP_DEBUG trên production để tránh rò rỉ thông tin nhạy cảm.

3. Phân quyền file log

Đảm bảo thư mục chứa log có quyền ghi cho user www-data (nginx) hoặc user tương ứng. Nếu log không được sinh ra, hãy kiểm tra quyền sở hữu: sudo chown www-data:www-data /var/log/php-fpm/sudo chmod 755 /var/log/php-fpm/.

Cách Đọc Và Phân Tích WordPress PHP-FPM Log

wordpress php-fpm log - Hình 2

Khi >, truy cập vào URL tương ứng, sau đó kiểm tra file log xem có xuất hiện dòng “Test error from WordPress” hay không. Nếu có, chứng tỏ log đã hoạt động.

Có nên bật WP_DEBUG_LOG thay vì dùng PHP-FPM log?

Nên dùng cả hai. PHP-FPM log ghi lại tất cả lỗi PHP (bao gồm cả lỗi từ plugin không dùng WordPress API). WP_DEBUG_LOG ghi lại một số thông tin WordPress cụ thể hơn. Kết hợp sẽ giúp bạn có cái nhìn tổng quát nhất.

Tôi có thể xem WordPress PHP-FPM log qua trình duyệt web không?

Có, nếu bạn cài đặt plugin như WP Crontrol hoặc Query Monitor (phiên bản Pro có chức năng xem log), nhưng chúng thường chỉ đọc file debug.log của WordPress, không trực tiếp đọc được file log PHP-FPM (vì lý do bảo mật). Cách an toàn là dùng SSH hoặc control panel của hosting.

Khi nào thì cần clear WordPress PHP-FPM log?

Khi log đã đạt đến dung lượng lớn (500MB+), hoặc trước khi bạn bắt tay vào debug một lỗi mới để tránh nhầm lẫn với lỗi cũ. Dùng lệnh sudo truncate -s 0 /var/log/php-fpm/wordpress-error.log để xóa nội dung mà không xóa file.

Kết Luận

wordpress php-fpm log - Hình 1

WordPress PHP-FPM log là một công cụ không thể thiếu trong bộ kỹ năng của bất kỳ nhà quản trị WordPress nào, từ chủ website nhỏ lẻ đến quản lý hệ thống lớn. Nó cung cấp thông tin chính xác, chi tiết về từng lỗi PHP, giúp rút ngắn thời gian debug từ vài giờ xuống còn vài phút. Việc nắm vững cách cấu hình, đọc hiểu và phân tích log sẽ giúp bạn chủ động phòng ngừa sự cố, tối ưu hiệu suất và giữ cho website luôn vận hành ổn định. Hãy bắt đầu bằng việc kiểm tra xem server của bạn đã bật ghi log PHP-FPM cho WordPress chưa, thiết lập quy trình xoay log định kỳ, và biến việc đọc log thành thói quen hàng ngày.

Bài viết cùng chủ đề:

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *