
เมื่อ WordPress มีปัญหาหลังอัปเดตปลั๊กอิน ให้หยุดการเปลี่ยนหลายอย่างพร้อมกัน แล้วเก็บข้อมูลสามชุด ได้แก่ อาการที่เห็น เวอร์ชันของทุกชิ้นที่เกี่ยวข้อง และลำดับเหตุการณ์ว่าเกิดอะไรขึ้นก่อนหลัง เก็บสามชุดนี้ให้ครบก่อน แล้วส่งให้ผู้ดูแลระบบหรือช่างเป็นคนตรวจ จะประหยัดเวลาและลดความเสี่ยงมากกว่าการลองแก้ไปเรื่อย ๆ
และขอย้ำไว้ก่อนว่า อาการที่เกิดหลังอัปเดตปลั๊กอินไม่ได้แปลว่าปลั๊กอินคือต้นเหตุเสมอไป
ทำไมต้องหยุดก่อน
เวลาเว็บมีอาการ ความรู้สึกแรกมักอยากรีบทำอะไรสักอย่างให้กลับมาปกติ แต่การเปลี่ยนหลายอย่างพร้อมกัน เช่น อัปเดตตัวอื่นเพิ่ม ปิดปลั๊กอินสลับไปมา ล้างแคช และสลับธีม ในเวลาไล่เลี่ยกัน จะทำให้แยกไม่ออกว่าอะไรทำให้อาการเปลี่ยน กลายเป็นว่าใช้เวลาไล่หานานขึ้นกว่าเดิม
อีกเรื่องคือ เว็บที่มีคำสั่งซื้อหรือรายการเข้าอยู่ตลอด ทุกนาทีมีข้อมูลใหม่เกิดขึ้น การกระทำบางอย่างที่ดูเหมือนแค่ย้อนกลับไปจุดเดิม อาจทำให้ข้อมูลที่เข้ามาหลังจากนั้นหายไปด้วย
สิ่งที่ควรทำในนาทีแรกจึงเป็นการบันทึกสภาพปัจจุบันไว้ ไม่ใช่การเปลี่ยนสภาพปัจจุบัน
ข้อมูลชุดที่ 1 อาการ
เขียนอาการให้ละเอียดกว่าคำว่า “เว็บพัง” ให้ระบุว่า
- อาการเกิดที่หน้าไหน เป็นหน้าฝั่งลูกค้า หรือหน้าหลังบ้าน หรือทั้งสองฝั่ง
- เห็นข้อความอะไรบนหน้าจอ ถ้ามีข้อความผิดพลาด ให้เก็บข้อความไว้และปิดข้อมูลส่วนตัวหรือข้อมูลเข้าถึงระบบก่อนส่งต่อ
- เกิดทุกครั้งหรือเกิดบางครั้ง ถ้าบางครั้ง เกิดตอนทำอะไร
- เกิดกับผู้ใช้ทุกคนหรือเฉพาะบางบทบาท เช่น ลูกค้าเจอแต่แอดมินไม่เจอ
- ลองเปิดด้วยเบราว์เซอร์อื่นหรือโหมดไม่บันทึกประวัติแล้วยังเป็นเหมือนเดิมหรือไม่
ถ่ายภาพหรือวิดีโอสั้น ๆ ให้เห็นขั้นตอนและอาการ พร้อมบอกชื่อหน้าที่มีปัญหา ก่อนส่งให้ปิดชื่อผู้ใช้ ข้อมูลลูกค้า รหัส และส่วนของลิงก์ที่อาจมีโทเคนหรือข้อมูลส่วนตัว ไม่จำเป็นต้องส่งทั้งหน้าจอถ้ามีข้อมูลอื่นที่ไม่เกี่ยวข้อง
ข้อมูลชุดที่ 2 เวอร์ชัน
จดเวอร์ชันของทุกชิ้นที่เกี่ยวข้องไว้ อย่างน้อยควรมี
- เวอร์ชันของ WordPress
- ชื่อและเวอร์ชันของธีมที่ใช้อยู่
- ชื่อและเวอร์ชันของปลั๊กอินที่เพิ่งอัปเดต รวมถึงเวอร์ชันก่อนหน้าถ้าจำได้
- รายชื่อปลั๊กอินอื่นที่เปิดใช้งานอยู่ พร้อมเวอร์ชัน
- เวอร์ชัน PHP ของโฮสต์ ถ้าเปิดดูได้จากหน้าจัดการโฮสต์หรือหน้าสถานะระบบใน WordPress
ข้อมูลชุดนี้สำคัญเพราะบางอาการไม่ได้มาจากปลั๊กอินตัวเดียว แต่มาจากการที่หลายชิ้นเปลี่ยนไปพร้อมกัน หรือมาจากการที่โฮสต์ปรับรุ่น PHP โดยที่เราไม่ได้เป็นคนกด
ข้อมูลชุดที่ 3 ลำดับเหตุการณ์
เขียนเป็นไทม์ไลน์สั้น ๆ ว่าอะไรเกิดก่อนหลัง ระบุวันเวลาเท่าที่จำได้ เช่น เมื่อวานตอนบ่ายกดอัปเดตปลั๊กอินสามตัว เช้านี้พนักงานแจ้งว่าหน้าชำระเงินโหลดช้า ตอนสายลองล้างแคชแล้วอาการเหมือนเดิม
สิ่งที่มักถูกลืมแต่สำคัญมากคือ ช่วงเวลาเดียวกันนั้นมีอย่างอื่นเปลี่ยนไปด้วยหรือไม่ เช่น เปลี่ยนโฮสต์ ต่ออายุใบรับรอง เปลี่ยนรหัสผ่านบัญชีที่ระบบใช้เชื่อมต่อ หรือมีการอัปเดตอัตโนมัติเกิดขึ้นเอง
ประเด็นเรื่องอัปเดตอัตโนมัตินี้ WordPress มีกลไกอัปเดตเบื้องหลังของตัวเองอยู่ ซึ่งตั้งค่าได้ว่าจะให้ทำงานกับส่วนไหนบ้าง อ่านรายละเอียดอย่างเป็นทางการได้ที่ Upgrading WordPress ดังนั้นบางครั้งของถูกอัปเดตไปแล้วโดยที่ไม่มีใครกด และไทม์ไลน์จะช่วยให้เห็นจุดนี้
ตรวจสำรองข้อมูลว่ามีอยู่จริง
ก่อนใครจะลงมือแก้อะไร ควรรู้ก่อนว่ามีไฟล์สำรองล่าสุดอยู่หรือไม่ และครอบคลุมทั้งสองส่วนหรือเปล่า คือทั้งไฟล์เว็บและฐานข้อมูล ถ้ามีแค่อย่างใดอย่างหนึ่ง การกู้คืนอาจได้ผลไม่ครบ
สิ่งที่ควรเช็กคือ สำรองล่าสุดลงวันที่เท่าไร เก็บไว้ที่ไหน และเคยลองกู้คืนดูหรือยัง ควรให้ผู้ดูแลตรวจความครบถ้วนและทดสอบกู้คืนบนพื้นที่แยก เพราะการมีไฟล์สำรองอย่างเดียวไม่ได้ยืนยันว่ากู้ระบบกลับมาใช้งานได้ครบ
ถ้าตรวจแล้วพบว่าไม่มีสำรองเลย ให้แจ้งช่างตั้งแต่ต้น เพราะจะเปลี่ยนวิธีทำงานทั้งหมด ช่างจะต้องระมัดระวังมากขึ้นและอาจต้องทำสำเนาก่อนแตะอะไรก็ตาม
สิ่งที่ไม่ควรลงมือเองถ้าไม่ใช่ผู้ดูแลระบบ
คำแนะนำหลายอย่างที่หาเจอตามอินเทอร์เน็ตเขียนไว้สำหรับคนที่ดูแลระบบเป็น ถ้าคุณเป็นเจ้าของร้านที่ไม่ได้ทำสายนี้ มีสามอย่างที่ไม่ควรทำเองบนเว็บจริง
อย่างแรกคือการลบไฟล์ในเว็บ เพราะบางไฟล์ที่ดูเหมือนไม่จำเป็นกลับมีค่าตั้งค่าสำคัญอยู่ข้างใน
อย่างที่สองคือการปิดปลั๊กอินทั้งหมดรวดเดียวบนเว็บจริง การแยกสาเหตุด้วยวิธีนี้ต้องให้ผู้ดูแลประเมินผลกระทบและวางแผนก่อน ถ้าทำบนเว็บที่ลูกค้ากำลังใช้งาน อาจทำให้หน้าตะกร้าหรือหน้าชำระเงินหยุดทำงานกลางคัน
อย่างที่สามคือการกู้ไฟล์สำรองทับเว็บจริงด้วยตัวเอง เพราะการทับกลับไปยังจุดเดิมหมายถึงข้อมูลที่เข้ามาหลังจุดนั้นอาจหายไป รวมถึงคำสั่งซื้อใหม่ ยอดสมัคร หรือข้อความที่ลูกค้าส่งเข้ามา
ให้ผู้ดูแลใช้ staging แยกจากเว็บจริง
วิธีที่ปลอดภัยกว่าคือให้ผู้ดูแลระบบทำสำเนาเว็บขึ้นมาอีกชุดหนึ่งที่แยกจากเว็บจริง เรียกกันว่า staging แล้วไปทดลองบนชุดนั้น
พื้นที่ทดสอบช่วยแยกการทดลองออกจากเว็บจริง แต่ไม่ได้แก้อาการที่เว็บจริงมีอยู่โดยอัตโนมัติ ต้องให้ผู้ดูแลแยกฐานข้อมูลและการเชื่อมต่อให้ถูกต้อง จำกัดการเข้าถึง และหยุดการส่งอีเมลหรือทำรายการจริงจากระบบทดสอบ เพื่อไม่ให้เกิดข้อมูลหรือรายการซ้ำ เมื่อหาสาเหตุเจอแล้วจึงวางแผนนำวิธีแก้ขึ้นเว็บจริง โดยรักษาข้อมูลที่เข้ามาใหม่ระหว่างนั้น ไม่คัดลอกฐานข้อมูลเก่าทับโดยไม่ตรวจ
โฮสต์หลายเจ้ามีเครื่องมือสร้าง staging ให้อยู่แล้ว ถ้าไม่แน่ใจว่าของตัวเองมีหรือไม่ ให้ถามผู้ให้บริการโฮสต์ก่อน
ข้อควรตัดสินใจ
- ตอนนี้เว็บยังรับคำสั่งซื้อได้อยู่หรือไม่ ถ้ายังได้ ให้ความสำคัญกับการไม่ทำให้ข้อมูลใหม่หายมากกว่าการรีบแก้
- ใครคือคนเดียวที่มีสิทธิ์ลงมือ ควรกำหนดให้ชัดเพื่อไม่ให้หลายคนแก้พร้อมกัน
- ถ้าอาการกระทบการขายโดยตรง ควรแจ้งลูกค้าล่วงหน้าอย่างไรระหว่างรอแก้
- หลังแก้เสร็จ จะปรับวิธีอัปเดตในอนาคตอย่างไร เช่น ทยอยอัปเดตทีละตัวและเว้นระยะสังเกตอาการ
คำถามที่พบบ่อย
ถ้าย้อนปลั๊กอินกลับไปเวอร์ชันเก่าแล้วอาการหาย แปลว่าปลั๊กอินตัวนั้นผิดใช่ไหม
ยังสรุปแบบนั้นไม่ได้ทีเดียว การย้อนกลับแล้วอาการหายบอกได้ว่ามีความเกี่ยวข้องกัน แต่สาเหตุจริงอาจอยู่ที่การทำงานร่วมกันระหว่างปลั๊กอินตัวนั้นกับธีม กับปลั๊กอินตัวอื่น หรือกับรุ่น PHP บนโฮสต์ก็ได้ นอกจากนี้การอยู่กับเวอร์ชันเก่าไปนาน ๆ ก็มีข้อเสียของมันเอง เพราะอาจพลาดการแก้ไขด้านความปลอดภัยที่ออกมาในเวอร์ชันใหม่
จำเป็นต้องเก็บข้อมูลเยอะขนาดนั้นเลยหรือ ในเมื่อช่างเข้าไปดูเองได้
ช่างเข้าไปดูสภาพปัจจุบันได้ แต่สิ่งที่ดูย้อนหลังไม่ได้คือ สิ่งที่เกิดขึ้นก่อนหน้าและสิ่งที่มีคนลองทำไปแล้ว ข้อมูลสองอย่างนี้อาจตรวจย้อนหลังได้บางส่วนจากบันทึกระบบ แต่รายละเอียดจากคนที่พบอาการยังช่วยเติมส่วนที่ขาดได้ และมักเป็นตัวที่ช่วยตัดตัวเลือกออกได้เร็วที่สุด
ถ้าเก็บข้อมูลครบตามที่ว่ามาแล้วแต่ยังไม่แน่ใจว่าจะเดินต่ออย่างไร ขั้นถัดไปคือให้คนที่ดูแลระบบเป็นช่วยตรวจบนสำเนาแยก แทนการทดลองบนเว็บจริง ทางร้านแม่คือคอมพิวเตอร์ ตำบลแม่คือ อำเภอดอยสะเก็ด จังหวัดเชียงใหม่ รับตรวจแก้ปัญหาและพัฒนาปลั๊กอิน WordPress รวมถึงเว็บไซต์และโปรแกรม ดูขอบเขตงานและข้อมูลที่ควรเตรียมก่อนติดต่อได้ที่หน้า บริการพัฒนาปลั๊กอิน WordPress


