WordPress เป็นหนึ่งในระบบจัดการเนื้อหา (CMS) ที่ได้รับความนิยมมากที่สุดในตลาดปัจจุบันมันถูกสร้างขึ้นบนภาษาการพัฒนาต่างๆ โดยมี PHP เป็นแกนหลักเมื่อใดก็ตามที่ผู้ใช้เยี่ยมชมไซต์ WordPress โค้ด PHP จะถูกรวบรวมโดยโมดูล PHP ที่ติดตั้งบนเซิร์ฟเวอร์ (Apache หรือ Nginx)นี่หมายความว่าข้อผิดพลาด PHP จำนวนมากสามารถเกิดขึ้นได้ระหว่างการประมวลผลคำขอของผู้ใช้หากเป็นเช่นนั้น แสดงว่าโค้ด PHP มีปัญหา
ดังนั้น ก่อนมองหาวิธีแก้ปัญหา คุณต้องเข้าใจพื้นฐานของวิธีตรวจสอบข้อผิดพลาด PHP เหล่านี้เสียก่อนในบทความนี้ เราจะอธิบายวิธีการดีบักข้อผิดพลาด PHP และเปิดใช้งานการบันทึกข้อผิดพลาดในไซต์ WordPress ของคุณ
ข้อผิดพลาด PHP ใน WordPress
ข้อผิดพลาด PHP อาจเป็นคำเตือนหรือข้อผิดพลาดร้ายแรงที่ทำให้เว็บไซต์ของคุณเสียหายปัญหาเหล่านี้อาจเกิดขึ้นได้จากสาเหตุต่างๆ ดังต่อไปนี้
- ละเว้นเครื่องหมายอัฒภาคในไวยากรณ์
- เรียกตัวแปรผิด
- ขัดแย้งกับปลั๊กอินอื่นหรือแม้แต่พารามิเตอร์เซิร์ฟเวอร์
- ปลั๊กอินหรือธีมที่เข้ากันไม่ได้กับ PHP เวอร์ชันล่าสุด
อย่าตกใจเมื่อคุณเห็นข้อผิดพลาดในส่วนหน้าของเบราว์เซอร์หรือในแผงการดูแลระบบเนื่องจากคุณต้องอัปเดตคอร์ WordPress, เวอร์ชัน PHP, ธีมและปลั๊กอินอย่างต่อเนื่อง จึงมักได้รับข้อผิดพลาดเนื่องจากความเข้ากันได้และสาเหตุอื่นๆ
เหตุใดจึงต้องตรวจสอบข้อผิดพลาด PHP
การตรวจสอบไซต์ของคุณเพื่อหาข้อผิดพลาด PHP มีความสำคัญในสองวิธีหลัก
- ความปลอดภัย - ข้อมูลในข้อผิดพลาด PHP สามารถเปิดเผยเว็บไซต์ของคุณต่อการโจมตีที่เป็นอันตรายดังนั้น การทำความเข้าใจและแก้ไขจุดบกพร่องจึงเป็นงานที่จำเป็นสำหรับการดูแลเว็บไซต์ที่ปลอดภัย
- การเพิ่มประสิทธิภาพ – ข้อผิดพลาด PHP อาจทำให้เว็บไซต์ของคุณช้าลง และหากปัญหาเหล่านี้ไม่ได้รับการสังเกต จะทำให้ประสิทธิภาพการทำงานช้าลงและสิ้นเปลืองแบนด์วิดท์
แม้ว่าการติดตั้งจำนวนมากจะไม่มีการแจ้งเตือนข้อผิดพลาดสำหรับปัญหาเหล่านี้โดยค่าเริ่มต้น แต่ปัญหา PHP มักเกิดขึ้นโดยไม่คาดคิดโดยไม่มีการเตือนแม้แต่การปรับเปลี่ยนเล็กน้อยบนเว็บไซต์ของคุณก็อาจส่งผลกระทบกับการตั้งค่าเซิร์ฟเวอร์ การตั้งค่าฐานข้อมูล หรือไฟล์ WordPress ของคุณได้
ความจริงก็คือแม้ว่าไซต์ของคุณจะทำงานได้ดีบนพื้นผิว แต่อาจประสบปัญหา PHP ที่ไม่มีใครสังเกตเห็นซึ่งจำเป็นต้องได้รับการแก้ไขทันทีด้วยเหตุนี้ ผู้ดูแลระบบ WordPress ควรให้ความสำคัญกับข้อผิดพลาดของ PHP
แก้ไขข้อผิดพลาด PHP ใน WordPress
บทความนี้จะตรวจสอบวิธีการดีบักข้อผิดพลาด PHP ใน WordPress โดยใช้สองวิธี
- ใช้รหัสเพื่อแก้ไขข้อผิดพลาด PHP ด้วยตนเอง
- ใช้ปลั๊กอินเพื่อแก้ไขข้อผิดพลาด PHP
1. แก้ไขข้อผิดพลาด PHP ด้วยตนเองด้วยรหัส
วิธีนี้ง่ายกว่ามากหากคุณเป็นนักพัฒนาซอฟต์แวร์หรือเข้าใจภาษาโปรแกรมหนึ่งหรือสองภาษาเป็นอย่างดีมันอาจจะไม่ใช่วิธีที่เร็วที่สุดเพราะคุณอาจเขียนโค้ดไม่กี่บรรทัด แต่ถึงอย่างนั้นก็ทำให้สนุกมากขึ้นสำหรับโพสต์นี้โดยเฉพาะ เราจะแก้ไขโค้ดใน Visual Studio Code เนื่องจากไซต์ดังกล่าวโฮสต์อยู่ใน LAMPPหากเว็บไซต์ของคุณอยู่ในระหว่างการผลิต คุณสามารถแก้ไขโค้ดผ่านแอปพลิเคชันตัวจัดการไฟล์หรือใช้ FTP
เราจะดูค่าคงที่ PHP หลักสามค่า:
WP_DEBUG | เปิดใช้งานการแก้ไขข้อผิดพลาด |
WP_DEBUG_DISPLAY | แสดงข้อผิดพลาดในส่วนหน้าของเบราว์เซอร์ |
WP_DEBUG_LOG | เปิดใช้งานการบันทึกข้อผิดพลาดในไฟล์บันทึก |
WP_DEBUG และ WP_DEBUG_DISPLAY
ในไซต์ทดสอบของเรา ขณะนี้ไม่มีข้อผิดพลาด PHP ปรากฏบนไซต์ WordPress ดังที่แสดงในภาพด้านล่างเนื่องจากโดยค่าเริ่มต้น WordPress จะป้องกันข้อผิดพลาดไม่ให้แสดงในเบราว์เซอร์โดยการตั้งค่าพารามิเตอร์ WP_DEBUG เป็น "เท็จ"
หากต้องการตั้งค่าการดีบัก WordPress เป็น true ให้ไปที่โฟลเดอร์การติดตั้งรูทของไซต์ของคุณและค้นหาไฟล์ wp-config.phpแก้ไขไฟล์และตรวจสอบว่ามีบรรทัดต่อไปนี้
define( 'WP_DEBUG', false );
ควรมีลักษณะเหมือนภาพด้านล่าง
หากมีบรรทัดอยู่ เพียงเปลี่ยนค่า WP_DEBUG เป็นจริงมิฉะนั้น คุณสามารถแทรกแถวใหม่ด้วยค่า WP_DEBUG เป็น trueเพิ่มบรรทัดต่อไปนี้เพื่อเปิดใช้งานการแสดงข้อผิดพลาด PHP ในเบราว์เซอร์
define( 'WP_DEBUG_DISPLAY', true );
เมื่อเปิดใช้งานพารามิเตอร์ทั้งสองนี้ พารามิเตอร์ควรมีลักษณะเหมือนภาพด้านล่าง
บันทึกไฟล์เพื่อใช้การเปลี่ยนแปลงและอัปโหลดกลับไปที่เซิร์ฟเวอร์ของคุณตอนนี้เมื่อเราโหลดเว็บไซต์ใหม่ เราจะเห็นข้อผิดพลาดที่แสดงบนหน้าจอดังที่คุณเห็น นี่เป็นข้อความเตือนว่ามีปัญหาทางไวยากรณ์กับหัวเรื่องซึ่งอาจทำให้เกิดข้อผิดพลาดในเวอร์ชัน PHP ในอนาคต
โปรดทราบว่าข้อผิดพลาด PHP บางอย่างปรากฏขึ้นในสภาพแวดล้อม localhost และไม่นำไปใช้กับไซต์ที่ใช้งานจริงนอกจากนี้ อย่าลืมเพิ่มโค้ดในไฟล์ wp-config.php ก่อน "/* เท่านั้น หยุดแก้ไข!เผยแพร่ความสุข*/".
ขออภัย ข้อผิดพลาดเหล่านี้ปรากฏบนเบราว์เซอร์ที่ไม่ค่อยเป็นมืออาชีพนอกจากนี้ ข้อบกพร่องบางอย่างอาจเปิดเผยช่องโหว่และช่องโหว่ด้านความปลอดภัยที่มีอยู่บนเว็บไซต์ทางออกที่ดีคือการสร้างไฟล์บันทึกที่เราจะทิ้งข้อผิดพลาดเหล่านี้ทั้งหมด
แต่ก่อนอื่น อย่าลืมปิดการแสดงข้อผิดพลาดโดยแก้ไขค่า WP_DEBUG_DISPLAY ดังที่แสดงในภาพด้านล่างปล่อยให้ค่า WP_DEBUG เป็นจริง เพื่อให้เราสามารถบันทึกข้อผิดพลาดได้
ใช้ WP_DEBUG_LOG เพื่อบันทึกข้อผิดพลาด
ต่อไปนี้คือบางสถานการณ์ที่คุณสามารถสร้างไฟล์บันทึกข้อผิดพลาดของ WordPress:
- เว็บไซต์ของคุณทั้งหมดไม่ทำงาน
- สังเกตหน้าจอว่างเมื่อพยายามเปิดเว็บไซต์
- ปัญหาประสิทธิภาพของเว็บไซต์
- คำเตือนด้วยรหัสสถานะ HTTP 401, 404 หรือ 500
- หากปลั๊กอินหรือธีมทำงานไม่ถูกต้องคุณอาจลองสร้างบันทึกข้อผิดพลาดเพื่อรับรายละเอียดเพิ่มเติมเกี่ยวกับปัญหา
ในการดัมพ์ข้อผิดพลาดของ WordPress ไปยังล็อกไฟล์ ให้เปิดไฟล์ wp-config.php และมองหาบรรทัดต่อไปนี้
define( 'WP_DEBUG_LOG', true );
หากไม่มีอยู่ คุณสามารถแทรกแถวใหม่ได้บางครั้งบรรทัดนี้ก็มีความคิดเห็นด้วย และอย่าลืมลบความคิดเห็นและตั้งค่า WP_DEBUG_LOG เป็น true ดังที่แสดงในภาพด้านล่าง
บันทึกไฟล์และอัปโหลดกลับไปที่เซิร์ฟเวอร์ของคุณตอนนี้ โหลดเว็บไซต์ใหม่บนเบราว์เซอร์ของคุณWordPress จะสร้างล็อกไฟล์ชื่อ debug.log ในไดเร็กทอรี wp-content ซึ่งจะทิ้งข้อผิดพลาด PHP ทั้งหมดบนไซต์ของคุณ
เมื่อเราเปิดไฟล์ คุณจะเห็นว่ามีข้อผิดพลาดทั้งหมดที่แสดงบนเว็บไซต์ของเรา
สิ่งนี้มีประโยชน์โดยเฉพาะอย่างยิ่งเมื่อคุณกำลังทำงานในสภาพแวดล้อมจริง และคุณไม่ต้องการให้ผู้ใช้เห็นข้อผิดพลาดบนหน้าจอของพวกเขาจากนั้น คุณสามารถตรวจสอบและแก้ไขข้อผิดพลาดเหล่านี้ในเบื้องหลังได้โดยไม่กระทบต่อผู้ใช้จริง
2. ดีบักข้อผิดพลาด PHP ด้วยปลั๊กอิน
แม้ว่าวิธีการข้างต้นจะง่าย แต่คุณจะต้องเข้าถึงเซิร์ฟเวอร์จากบัญชีโฮสติ้งของคุณหรือใช้ FTP เพื่อเข้าถึงเซิร์ฟเวอร์จากระยะไกลเพื่อแก้ไข wp-config.phpโชคดีที่มีปลั๊กอินหลายประเภทที่คุณสามารถใช้เพื่อแก้ไขข้อผิดพลาด PHP ใน WordPressที่นี่เราจะพูดถึงสองปลั๊กอินต่อไปนี้:
- ปลั๊กอินดีบัก WP
- ปลั๊กอินตรวจสอบแบบสอบถาม
ดีบักข้อผิดพลาด PHP ด้วย WP Debugging Plugin
การดีบัก WPปลั๊กอินเป็นฟรีปลั๊กอิน WordPress ที่เริ่มโหมดดีบัก WordPress และเปิดใช้งานการบันทึกข้อผิดพลาดเมื่อเปิดใช้งาน ปลั๊กอินนี้จะตั้งค่าคงที่การดีบักใน wp-config.php และลบออกเมื่อปิดใช้งานหากมีปัญหาใดๆ ข้อยกเว้น PHP จะถูกส่งออกไปค่าคงที่เหล่านี้รวมถึง:
define( 'WP_DEBUG'; true );define( 'WP_DEBUG_LOG'; true );define( 'SCRIPT_DEBUG'; true );define( 'SAVEQUERIES'; true );
พยายามทุกวิถีทางเพื่อคืนค่าสถานะของค่าคงที่ที่มีอยู่ก่อนเมื่อปิดใช้งานปลั๊กอินแม้ว่าเมื่อเปิดใช้งานปลั๊กอินอีกครั้ง การตั้งค่าเริ่มต้นและการตั้งค่าที่บันทึกไว้ทั้งหมดจะถูกกู้คืนปลั๊กอินยังมาพร้อมกับส่วนการดีบักซึ่งคุณสามารถกำหนดค่าค่าคงที่ของการดีบักได้เริ่ม;
- ไปที่แดชบอร์ด WordPress ของคุณและคลิกที่เมนูเครื่องมือ
- คลิกที่เมนูย่อย WP Debug
- เลื่อนลงและเลือกค่าคงที่การดีบักเพื่อใช้กับไซต์
- คลิกปุ่ม บันทึกการเปลี่ยนแปลง เพื่อใช้การเปลี่ยนแปลงตามที่แสดงในภาพด้านล่าง
ดีบักข้อผิดพลาด PHP ด้วยปลั๊กอิน Query Monitor
Query Monitorเป็นปลั๊กอิน WordPress ฟรีที่ช่วยให้ผู้ดูแลเว็บวิเคราะห์การค้นหาหน้าและส่วนหลังนอกจากนี้ยังแจ้งเตือนคุณถึงข้อผิดพลาดที่สำคัญของ PHP ในการใช้งานหลายอย่างเมื่อติดตั้งและเปิดใช้งานแล้ว คุณจะเห็นรายการใหม่ในแถบผู้ดูแลระบบด้านบนเมื่อระบุปัญหาร้ายแรง (PHP) แถบเครื่องมือจะเป็นสีแดงดังแสดงในภาพด้านล่าง
แถบเครื่องมือนี้มีเมนูแบบเลื่อนลงพร้อมตัวเลือกมากมายสำหรับจัดการไซต์ WordPress ของคุณอย่างไรก็ตาม ในบทความนี้ เราจะเน้นเฉพาะข้อผิดพลาด PHP เท่านั้นวางเมาส์เหนือแถบเครื่องมือ Query Monitor ที่เพิ่งเปิดตัวใหม่และคลิกข้อผิดพลาด PHPซึ่งจะเป็นการเปิดหน้าต่างที่แสดงข้อผิดพลาด PHP ทั้งหมดบนไซต์ WordPress ดังที่แสดงในภาพด้านล่าง
นอกจากนี้ คุณยังสามารถตั้งค่าคุกกี้การรับรองความถูกต้องที่ช่วยให้คุณสามารถดูผลลัพธ์ของการตรวจสอบแบบสอบถามเมื่อคุณไม่ได้เข้าสู่ระบบหรือเข้าสู่ระบบในฐานะผู้ใช้อื่น為此 , 請 按照 以下 步驟 操作 :
- ไปที่ส่วน "ปลั๊กอิน" บนแดชบอร์ด WordPress
- คลิกที่ตัวเลือก "การตั้งค่า" ด้านล่างปลั๊กอิน Query Monitor
- หน้าต่างคอนโซลนักพัฒนาซอฟต์แวร์จะปรากฏขึ้นบนแผงการดูแลระบบของคุณ
- คลิกที่ "ตั้งค่าคุกกี้การตรวจสอบสิทธิ์"
ข้อสรุป
บทความนี้มีวิธีการต่างๆ ที่คุณสามารถใช้เพื่อแก้ไขข้อผิดพลาด PHP บนเว็บไซต์ WordPress ของคุณหากคุณมีความเชี่ยวชาญในการเขียนโปรแกรม คุณควรพยายามโต้ตอบกับโค้ด WordPress ของคุณโดยตรงด้วยตนเองอย่างไรก็ตาม โปรดใช้ความระมัดระวังเมื่อแก้ไขไฟล์เพื่อไม่ให้เกิดข้อผิดพลาดอีกปลั๊กอินเหล่านี้มีประโยชน์หากคุณต้องการแนวทางที่รวดเร็วและตรงไปตรงมา