Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> อินเทอร์เน็ต

แก้ WordPress Site Health: แก้ cURL Error 28 (REST API Loopback)

เมื่อไม่กี่วันมา ผมค้นพบปัญหาน่าสนใจนิดหน่อย ผมรัน WordPress บนเว็บไซต์หนังสือของผม และโดยธรรมชาติมีการทดสอบเพื่อให้แน่ใจว่าทุกอย่าง Hunky-dory ก่อน Introduce Changes ไปที่ Domain การเปลี่ยนแปลงหนึ่งคือ การนำเสนอ Site Health Check Tool ใน WordPress 5.2 ซึ่งบอก Critical Issues และ Recommended Actions สำหรับ Setup ของคุณ

เองมัน Fine แต่ผมสังเกต Critical Errors 2 อย่าง โผล่ขึ้นมาพร้อม Update 5.4 บ่งบอก Issue ใหม่กับ Domain Errors: The REST API encountered an error และ Your site could not complete a loopback request รายละเอียดทั้งคู่: Error: cURL error 28: Operation timed out after 10000 milliseconds with 0 bytes received (http_request_failed) แปลก มา Debug กัน

ปัญหาในรายละเอียด

Critical Issues 聽起來น่ากลัว แต่ต้องดู Potential Problems อย่างละเอียด เพื่อเข้าใจ Actual Impact บ่อยครั้ง Companies Over-stringent กับ Bugs/Problems เพราะไม่ไครอยากถูกตำหนิว่า Lax กับ Issues ที่อาจนำไปสู่ Security Complications มาดู Status Report:

แก้ WordPress Site Health: แก้ cURL Error 28 (REST API Loopback)

Issue แรกอ่านว่า:

The REST API encountered an error

REST API เป็นหนึ่งในวิธีที่ WordPress และแอปพลิเคชันอื่นๆ สื่อสารกับ Server ตัวอย่างคือ Block Editor Screen ซึ่งพึ่งพาเพื่อ Display และ Save Posts/Pages

REST API Request ล้มเหลวเนื่องจาก Error
Error: cURL error 28: Operation timed out after 10001 milliseconds with 0 bytes received (http_request_failed)

Issue ที่สองข้อความนี้:

Your site could not complete a loopback request

Loopback Requests ใช้รัน Scheduled Events และใช้โดย Built-in Editors สำหรับ Themes และ Plugins เพื่อ Verify Code Stability

Loopback Request ไปยัง Site ของคุณล้มเหลว หมายถึง Features ที่พึ่งพาไม่ทำงาน As Expected
Error: cURL error 28: Operation timed out after 10001 milliseconds with 0 bytes received (http_request_failed)

Error แรกบอกว่า นี่เป็นหนึ่งวิธีที่ WordPress ใช้สื่อสารกับ Server - หมายถึงมีอีกวิธี Error ไม่ Explicit ว่าจะ Cause Issues จริงเมื่อทำ Operations ต่างๆ

ระบุ Block Editor - Gutenberg ใหม่ทั้งหมดใน WordPress 5.0 ซึ่งผมไม่ใช้ ใช้ Classic Editor แทว ดังนั้นอาจเป็น Non-issue ตั้งแต่แรก แล้วมี Actual Functionality - ไม่มี Functions ใดที่กล่าวถึงได้รับผลกระทบ WordPress ทำงานและทำทุกอย่างได้ตามปกติ อาจเป็น False Positive? เราจะเห็นเร็วๆ นี้

Error ที่สองพูดถึง Scheduled Events - เช่น Background Updates, Overnight Tasks อีกครั้ง หากไม่มี Configured นี่คือ Non-issue หากมี และรันถูกต้อง ปัญหาไม่ส่งผลต่อคุณ Error บอก "Working as expected" แต่ไม่ใช่ Statement ที่ Deterministic, Precise ทำให้ Troubleshooting ยากขึ้น

แหล่งที่มาของปัญหา

แตสมมติว่าเป็น Real Problems คำถามคือ Troubleshoot ยังไงหา Source ไม่ใช่เรื่องง่าย และไม่มีอะไรใน Error Messages ที่ Steer คุณไปทิศทางที่ถูก

สิ่งที่ผมต้องทำ คือ Manual Turn Off ทุก Non-default Component ทีละตัว แล้ว Re-run Health Check ดูว่าองค์ประกอบไหน At Fault โชคดีทดสอบได้สบายๆ แต่ลองจินตนาการ Impact ใน Production Setup

ตอนนี้... หลังจากลองทุก Plugin และ Theme ที่ใช้ ไม่มีตัวไหน Affect Outcome WordPress ยัง Complain ตัดสินใจขยายการค้นหา ผมใช้ .htaccess File พร้อม Basic Auth และรายละเอียดอื่นๆ เล็กน้อย เป็น Secondary Layer Access Control ไปที่ Admin Page Lo and behold ลบ Auth Part ออก Fixed ไม่มี Health Check Errors อีกต่อไป!

AuthType Basic
AuthName restricted
AuthUserFile /home/mastablasta/wp-admin/passwd
Require valid-user

ดูเหมือน WordPress Site Health ไม่ชอบ .htaccess Files ผมไม่ได้ Explore ลึกว่ามัน Trip Checks ยังไง แต่ผมไม่ต้อง 1) ผมรู้ Source ของปัญหา 2) Errors ไม่ส่งผลต่อ Functionality ที่ผมอยากและต้องการ ดังนั้น Non-issue

สรุป

ชัดเจนว่า Problems ใน Site Health เป็น Internal - มันขึ้นแค่เมื่อ Move ไป WordPress 5.4 แน่นอน บาง Code ที่นั่นเปลี่ยน แต่โดยพื้นฐาน หาก Core Product Behavior แตกต่าง Radically จากก่อน Update และไม่มี Huge Problems ใน Elements อื่นของ Site Functionality น่าจะมาจาก Core Product Update

ผมชอบ Idea ของ Site-issues-at-a-glance แต่ไม่พอใจ False Positives หรือ Wild Goose Chase ที่ Errors สร้างให้ผม แม้สั้นๆ Errors ต้อง Meaningful หากผมไม่มี Insight อะไรผิดจากการ Manifest ของ Error ไม่มี Point แสดง Technical Details cURL Error 28 และ .htaccess ดูห่างกันไกล มันแล้ว หากคุณ Affected โดยปัญหาคล้ายกัน ดู Site Configuration ดูว่ามี Basic Auth ไหม และอาจ Suffer จาก Would-be Bug เดียวกัน เสร็จแล้ว

Cheers.