in ,

เว็บ WordPress ไม่ทำงาน (November 2018) วิธีแก้ง่ายๆ และสาเหตุ

เข้าหน้าเว็บแล้วติดที่ connecting แล้วเว็บค้างไม่ขยับไปไหนเลย ทิ้งไว้สักพักก็จะแสดงเว็บแบบไม่สมบูรณ์ สันนิษฐานแรกคิดว่า Web Server รวนอีกแล้ว หลังจากวิธีเบื้องต้นไม้ตายคือ restart server แล้วไม่หาย เข้า wp-admin หลังบ้าน ก็ถูก redirect ไปที่ erealitatea.net เริ่มชัดเจนแล้วว่าน่าจะถูก Malware บางอย่าง จึงต้องเป็นวิธีการต่อไปโดยเช็คเว็บบน Server เดียวกัน ปรากฎว่ามีอาหารติดแบบเดียวกัน 3 เว็บ จึงมุ่งไปที่ Template/Plugins ว่าถูก Hack หรือเปล่าโดยเปลี่ยน Template และ Deactivated Plugins ทั้งหมด โดยไม่ผ่าน wordpress ปรากฎก็ยังไม่หาย จึงขยับต่อไปเช็ค Database โดย Maintenance mode ที่เช็คแล้วปกติดีทั้งหมด

สรุปอาการเบื้องต้น

  • เมื่อใช้ Template แบบ Basic ที่ติดมากับ WP และ ปิด Plugins ทั้งหมด และ Database ปกติ จึงลองเรียกไฟล์ภาพ static ที่อยู่บนเว็บดู ปรากฎว่า “มาอย่างรวดเร็ว”

วินิจฉัยเบื้องต้น

  • ในขณะที่เข้าหน้าเว็บหลัก บน Browser แสดง Title ของเว็บแล้ว แต่ Status ด้านล่าง Browser ติดที่ connecting ไม่ไปไหนต่อ จน Timeout จึงแสดงบางส่วนที่แสดงได้แบบไม่สมบูรณ์ นั่นหมายถึง Server ไม่ได้ล่ม แต่ Browser กำลังโหลดและรอบางสิ่งกลับมาเพื่อแสดงผลจน Timeout

วิธีหาทางแก้ไขปัญหาสถานการณ์นี้

  • ตามขั้นตอนปกติ ต้อง Debug ดูว่าติดตรงไหนที่ Browser ร้องขอ (request) ไปแล้วไม่กลับมาเสียที
  • แต่ .. Google ก่อนดีกว่า (เพราะไม่ค่อยมีเวลามากนัก) ด้วย keyword จำพวก “wordpress stuck, erealitatea ฯลฯ” (เพราะ erealitatea เป็นหน้าที่ wordpress พยายาม redirect ไปตอนเข้า wp-admin) แล้วไล่ดูเรื่อยๆ จาก results ที่ยังมีไม่ค่อยมากนัก จนกระทั่งเจอที่ blog.sucuri.net โพสเมื่อ 2018/11 สดๆ ร้อนๆ และตรงประเด็น
  • จึงแก้ไขด้วยวิธีตามที่ blog.sucuri.net บอกไว้ มีหลายวิธี แต่เลือกวิธีที่ง่ายที่สุด

สาเหตุโดยละเอียด

สามารถอ่านได้จาก blog.sucuri.net ได้เลย เข้าใจได้ไม่ยาก ถ้ามีเวลาอาจทำสรุปภาษาไทยเพิ่มเติมไว้นะครับ สรุปสั้นๆ คือมีช่องโหว่ใน Plugin ชื่อ WP GDPR Compliance plugin ตั้งแต่เวอร์ชัน 1.4.2 ย้อนไป ที่มีผู้ติดตั้งเกินแสนเว็บ ที่ตอนนี้ผู้พัฒนาได้ปล่อยอัพเดทเวอร์ชัน 1.4.3 ออกมาแก้ไขแล้ว ส่วนรายละเอียดการเจาะช่องโหว่นี้อ่านได้ที่ wordfence.com

วิธีแก้ไขที่เลือกใช้

เพิ่ม 2 บรรทัดด้านล่างนี้ไว้ใน wp-config.php  ด้านบนเลยก็ได้ แต่ให้อยู่ภายใน ‘<?php’ และอย่าลืมเปลี่ยนทั้ง 2 บรรทัดที่แสดงเป็น (http://YOUR-SITE-DOMAIN-HERE) ให้เป็นเว็บของคุณ เช่น https://tonimaxx.com

define( 'WP_HOME', 'http://YOUR-SITE-DOMAIN-HERE' );
define( 'WP_SITEURL', 'http://YOUR-SITE-DOMAIN-HERE' );

เพียงเท่านี้เว็บก็จะกลับมาทำงานปกติแล้ว

What do you think?

0 points
Upvote Downvote

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Loading…

0

Comments

0 comments

Differences between HDMI versions 1.1, 1.2, 1.3a, 1.4 and 2.0?

Toy Story 4 Teaser Trailer #1 (2019) | Movieclips Trailers