🔔 ประกาศสำคัญ: อัปเดตชื่อผู้รับเงินใหม่ กรุณาตรวจสอบก่อนชำระเงิน อ่านรายละเอียด →
075-845-490 | 097-165-2449
LINE OA: @hostnakhonitech (ช่องทางหลัก)
🎉 โปรโมชั่นพิเศษ! ลด 10% สำหรับลูกค้าใหม่

Fixing The 500 Internal Server Error In WordPress Print

  • 1

500 Internal Server Error คืออะไร?

Internal Server Error คือปัญหาที่เกิดขึ้นจากฝั่งแอปพลิเคชันบนเว็บเซิร์ฟเวอร์ของคุณ เมื่อคุณพิมพ์ URL หรือคลิกลิงก์เพื่อเรียกดูหน้าเว็บ เซิร์ฟเวอร์จะได้รับคำขอ แต่หากมีบางอย่างผิดปกติจนไม่สามารถแสดงผลหน้านั้นได้ คุณจะพบกับข้อความแจ้งเตือนความผิดพลาดนี้

Internal Server Error ใน WordPress
ข้อควรระวัง: เพื่อความปลอดภัย อย่าลืมตรวจสอบว่าผู้ให้บริการโฮสติ้งของคุณมีระบบสำรองข้อมูลอัตโนมัติ (Automated Backup) ให้ใช้งานเสมอ

การสร้างข้อมูลสำรอง (Backup)

บ่อยครั้งที่ข้อผิดพลาดบนเซิร์ฟเวอร์ไม่ได้เกิดจากตัวคุณโดยตรง แต่เนื่องจากเซิร์ฟเวอร์ถูกจัดการโดยมนุษย์ ความผิดพลาดจึงเกิดขึ้นได้เสมอ และบางครั้งอาจร้ายแรงจนทำให้เว็บไซต์พังทั้งหมด ดังนั้นการสำรองข้อมูลจึงเป็นสิ่งที่ "ต้องทำ" เป็นประจำ

หากโฮสติ้งไม่มีระบบสำรองข้อมูลที่ดี คุณสามารถเลือกใช้ ปลั๊กอินสำรองข้อมูล WordPress (Backup Plugins) แทนได้

วิธีแก้ไข 500 Internal Server Error บน WordPress

มีหลายสาเหตุที่ทำให้เกิดปัญหานี้ เพื่อที่จะแก้ไขได้ตรงจุด เราต้องระบุสาเหตุให้พบก่อน ซึ่งสาเหตุที่พบบ่อยที่สุดคือ ไฟล์ .htaccess เสียหาย และ ขีดจำกัดหน่วยความจำ PHP (PHP Memory Limit)

1. การแก้ไขไฟล์ .htaccess

หากไฟล์ .htaccess เสียหาย จะส่งผลให้เกิด Error 500 ทันที โดยมักเกิดจากปลั๊กอินหรือการติดตั้งธีมที่ไม่สมบูรณ์

ขั้นตอน: ล็อกอินเข้า FTP ของคุณ ไปที่ Root Directory (โฟลเดอร์หลัก) คุณจะเห็นไฟล์ชื่อ .htaccess อยู่ใกล้ๆ กับโฟลเดอร์ wp-content

ตำแหน่งไฟล์ htaccess

ให้ดาวน์โหลดไฟล์มาเก็บไว้ในเครื่อง จากนั้นลองเปลี่ยนโค้ดในไฟล์ให้เป็นค่ามาตรฐานตาม WordPress Codex ตัวอย่างเช่น หากคุณใช้ WordPress Multisite เวอร์ชัน 3.5 ขึ้นไป ให้ใช้โค้ดดังนี้:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

2. การเพิ่ม PHP Memory Limit

หากหน่วยความจำ PHP ต่ำเกินไป เซิร์ฟเวอร์จะตัดการทำงานและแสดง Error 500 คุณสามารถเพิ่มขีดจำกัดนี้ได้โดยแก้ไขโค้ดในไฟล์ต่อไปนี้ตัวใดตัวหนึ่ง:

ไฟล์ wp-config.php (แนะนำ)

define('WP_MEMORY_LIMIT', '1024M');
ini_set('post_max_size', '1024M');
ini_set('upload_max_filesize', '1024M');

ไฟล์ .htaccess

php_value upload_max_filesize 1024M
php_value post_max_size 1024M

ไฟล์ PHP.ini

memory_limit = 1024M
upload_max_filesize = 1024M
post_max_size = 1024M
file_uploads = On

วิธีแก้ไขเพิ่มเติม

ปิดการใช้งานปลั๊กอินทั้งหมด

หากยังเข้าหน้าเว็บไม่ได้ ให้ลองปิดปลั๊กอินทีละตัว โดยเข้าหน้าแอดมิน (ถ้าเข้าได้) แล้วกด Deactivate ปลั๊กอิน แล้วรีเฟรชหน้าเว็บดูว่าหายหรือไม่

ปิดปลั๊กอิน

อัปโหลดโฟลเดอร์ wp-admin และ wp-includes ใหม่

หากทำทุกทางแล้วไม่หาย ให้ดาวน์โหลดไฟล์ติดตั้ง WordPress ใหม่ แล้วอัปโหลดเฉพาะโฟลเดอร์ wp-admin และ wp-includes ขึ้นไปทับของเดิม (อย่าลืมสำรองข้อมูลก่อนทำ!)


Was this answer helpful?

« Back