Gần đây, tôi phát hiện một vấn đề nhỏ thú vị. Tôi chạy WordPress trên trang web chỉ sách của mình, và tự nhiên, có testing cần làm để đảm bảo mọi thứ ổn trước khi giới thiệu thay đổi lên domain. Một thay đổi đó là giới thiệu công cụ Site Health check trong WordPress 5.2, báo cho bạn bất kỳ vấn đề critical (nghiêm trọng) nào và hành động khuyến nghị cho thiết lập.
Riêng nó, điều này ổn, nhưng rồi tôi nhận thấy một vài lỗi critical bị báo cáo với cập nhật 5.4, chỉ ra vấn đề mới đột ngột với domain. Lỗi là: The REST API encountered an error (REST API gặp lỗi) và Your site could not complete a loopback request (Trang web không thể hoàn thành request loopback). Chi tiết cho cả hai: Error: cURL error 28: Operation timed out after 10000 milliseconds with 0 bytes received (http_request_failed). Lạ. Hãy debug.
Vấn đề chi tiết
Vấn đề critical nghe kinh khủng. Nhưng rồi, bạn cần nhìn vấn đề tiềm năng cẩn thận, để hiểu tác động thực tế. Rất thường, công ty over-stringent (quá chặt chẽ) với cách họ đối phó bug và vấn đề, vì không ai muốn bị buộc tội quá lỏng lẻo với vấn đề có thể dẫn đến complication (phức tạp) bảo mật. Vậy hãy xem báo cáo trạng thái:

Vấn đề đầu tiên đọc như sau:
The REST API encountered an error
REST API là một cách WordPress, và ứng dụng khác, giao tiếp với server. Ví dụ là màn hình block editor, dựa vào nó để hiển thị, và lưu, bài viết và trang.
REST API request failed due to an error.
Error: cURL error 28: Operation timed out after 10001 milliseconds with 0 bytes received (http_request_failed)
Thứ hai có văn bản sau:
Your site could not complete a loopback request
Loopback requests được dùng để chạy scheduled events (sự kiện theo lịch), và cũng được dùng bởi editor tích hợp cho theme và plugin để verify (xác minh) code stability.
Loopback request đến trang web thất bại, nghĩa là tính năng dựa vào chúng không hoạt động như mong đợi.
Error: cURL error 28: Operation timed out after 10001 milliseconds with 0 bytes received (http_request_failed)
Lỗi đầu tiên nói rằng đây là một cách WordPress giao tiếp với server - nghĩa là có cách khác. Lỗi không rõ ràng liệu điều này thực sự gây vấn đề khi thực hiện các thao tác.
Nó cụ thể nhắc đến block editor - toàn bộ Gutenberg mới giới thiệu trong WordPress 5.0, mà tôi không dùng, và thay vào đó dựa vào Classic Editor tuyệt vời. Vì vậy có thể đây là non-issue (vấn đề không tồn tại) từ đầu. Rồi, có câu hỏi về chức năng thực tế - không một chức năng nhắc đến bị ảnh hưởng. WordPress hoạt động và làm mọi thứ như nó nên. Có lẽ false positive? Chúng ta sẽ thấy sớm.
Lỗi thứ hai nói về scheduled events - như background update, tác vụ overnight, v.v. Lại, nếu bạn không cấu hình, đây là non-issue. Nếu bạn có, và chúng chạy đúng, thì vấn đề không ảnh hưởng bạn. Lỗi nói "working as expected" - nhưng đây không phải statement (câu xác định) deterministic (xác định), precise (chính xác). Nó làm troubleshooting khó hơn.
Nguồn gốc vấn đề
Nhưng hãy giả sử một chút rằng đây thực sự là vấn đề thực. Câu hỏi là, làm sao troubleshoot chúng stem from (xuất phát từ đâu)? Không phải việc dễ, và không có gì trong thông báo lỗi thực sự lái bạn đúng hướng.
Vậy điều tôi phải làm là thủ công tắt từng component non-default, một một, và re-run health check, xem bất kỳ yếu tố cụ thể nào là thủ phạm. May mắn, tôi có thể test tại leisure (thảnh thơi), nhưng tưởng tượng impact trong setup production.
Bây giờ ... sau một lúc, tôi đã thử từng plugin và theme tôi dùng, và không cái nào dường như ảnh hưởng kết quả. WordPress tiếp tục than vãn. Rồi, tôi quyết định mở rộng tìm kiếm. Tôi đang dùng file .htaccess, với basic authentication và vài chi tiết hữu ích khác, như lớp kiểm soát truy cập thứ hai cho trang admin. Và ngạc nhiên, xóa phần auth sửa nó. Không còn lỗi health check!
AuthType Basic
AuthName restricted
AuthUserFile /home/mastablasta/wp-admin/passwd
Require valid-user
Vì vậy dường như - WordPress Site Health không thích file .htaccess. Tôi chưa khám phá chính xác nó trip (kích hoạt) checks như thế nào, nhưng tôi không cần. Một, tôi biết nguồn vấn đề. Hai, lỗi không ảnh hưởng chức năng tôi muốn và cần, do đó đây là non-issue.
Kết luận
Rõ ràng vấn đề trong Site Health là internal (bên trong) - cuối cùng, chúng chỉ bắt đầu mọc lên với chuyển sang WordPress 5.4. Tất nhiên, một đoạn code ở đâu đó đã thay đổi, nhưng về cơ bản, nếu hành vi cốt lõi sản phẩm đột ngột khác biệt hoàn toàn so với ngay trước cập nhật, và không có vấn đề lớn trong các yếu tố khác của chức năng trang, thì khá có thể vấn đề xuất phát từ cập nhật core sản phẩm nói trên.
Tôi thích ý tưởng site-issues-at-a-glance (vấn đề trang web một눈 nhìn thấy), nhưng tôi không vui với false positives, hoặc cuộc săn gà (goose chase) lỗi tạo ra cho tôi, dù chỉ ngắn. Lỗi cần meaningful (có ý nghĩa). Nếu tôi không có insight (sự thấu hiểu) về gì có thể sai từ cách lỗi biểu hiện, thì không có điểm nào show chi tiết kỹ thuật. cURL error 28 và .htaccess dường như xa lạ. Vâng, chúng ta ở đây. Nếu bạn bị ảnh hưởng bởi vấn đề tương tự, hãy nhìn cấu hình site, xem nếu bạn dùng basic auth, và có thể bị bug would-be giống. Xong ở đây.
Chúc vui.