เว็บ WordPress ที่ติดตั้ง WP Super Cache พังเมื่อย้ายโฮสต์

สองวันก่อนเพิ่งทำการย้ายโฮสต์เว็บไซต์ออกจาก Cloudhost.in.th ไปใช้ Host4.pro แทน  ซึ่งเว็บเดโม่ต่างๆ ของลูกค้าต่างใช้งานได้ตามปกติ  ยกเว้นเว็บหลักคือเว็บ Tyria.in.th

อาการที่เจอคือเว็บทำงานได้ช้ามาก  และบางครั้งก็ Error 500 ขึ้นมาเสียดื้อๆ ในขณะเดียวกัน  ฝั่ง wp-admin ก็มีผลกระทบด้วยเล็กน้อย  แต่โดยรวมถึงสามารถเข้าใช้งานได้ตามปกติ

ปัญหาจากการย้ายโฮสต์ส่วนใหญ่ที่เจอมักจะมาจากปลั๊กอินต่างๆ ดังนั้นแล้วเลยเข้าหลังบ้านไปตรวจสอบการตั้งค่าปลั๊กอินต่างๆ และยังพบว่าถูกต้องตามปกติ  จนกระทั่งเข้ามาในส่วนของ WP Super Cache แล้วพบข้อความผิดพลาดดังในรูป

จุดที่น่าสนใจคือ Path นั้นยังขึ้นเป็น Path เก่าอยู่ (user จากโฮสต์เดิม) ในขณะที่หลังจากย้ายโฮสต์  ปลั๊กอิน WP Super Cache ก็ทำการแก้ไขค่าคงที่ WPCACHEHOME ใน wp-config.php ให้เรียยร้อยแล้ว

หลังจากที่ทำการขุดไฟล์ตั้งค่าต่างๆ ของ WP Super Cache ก็พบว่าในไฟล์ /wp-content/wp-cache-config.php แถวๆ บรรทัดที่ 31 จะมีการกำหนดตัวแปร $cache_path เอาไว้เป็น Path ดังกล่าว

วิธีแก้ไขก็คือให้แก้ค่าในตัวแปรนี้ให้เป็นไดเรคทอรี่ปัจจุบัน  สำหรับใครที่ย้ายระหว่างโฮสต์ DirectAdmin ด้วยกัน  ก็แก้ชื่อ Username ให้ถูกต้องได้เลย (จะเป็น /home/<username>/domains/…) ส่วนถ้าใครใช้คอนโทรลพาเนลอื่น  หรือไม่แน่ใจว่า Path คืออะไร  ให้สร้างไฟล์ path.php ขึ้นมาในไดเรคทอรี่ /wp-content/cache/ แล้วรันคำสั่ง realpath()

จากนั้นเปิดเบราเซอร์ไปยังไฟล์ดังกล่าว  มันก็จะแสดง path เต็มๆ ออกมาให้  สามารถเอาค่าไปใส่ในตัวแปรได้ทันที

หลังจากแก้ไขค่า $cache_path เรียบร้อยแล้ว  ก็ทำการ deactivate และ activate ปลั๊กอินใหม่อีกครั้งเพื่อความชัวร์  เท่านี้ก็เรียบร้อยครับ

ปัญหาดังกล่าวคาดว่าน่าจะเป็นบั๊กของ WP Super Cache เอง  ที่ไม่ได้อัพเดท Path ในตัวแปรดังกล่าวด้วย (อัพเดทเฉพาะใน wp-config.php) ทำให้เกิดข้อผิดพลาดดังกล่าวขึ้น

จริงๆ ปัญหานี้สามารถแก้ไขได้ง่ายๆ ด้วยการลบไฟล์ wp-cache-config.php ทิ้งไปเลย  แล้วให้ปลั๊กอินสร้างไฟล์นี้ขึ้นมาใหม่แทน ทั้งนี้ผู้ใช้จำเป็นต้องไปตั้งค่าทั้งหมดของ WP Super Cache ใหม่อีกรอบหนึ่งด้วย

Comments