แก้ Error 500, 403, 404 บน Hosting — สาเหตุและวิธีแก้

เปิดเว็บแล้วเจอหน้าจอสีขาวพร้อมตัวเลข 500, 403 หรือ 404 คือสัญญาณที่บอกว่ามีบางอย่างผิดปกติ แต่ละ Error Code มีความหมายต่างกันและมีวิธีแก้ต่างกัน บทความนี้แยกแยะสาเหตุและวิธีแก้ไขทีละกรณี พร้อมสอนวิธีอ่าน Error Log ใน DirectAdmin เพื่อหาต้นเหตุที่แท้จริง

1. HTTP Error คืออะไร?

HTTP Status Code คือรหัสตอบกลับที่ Web Server ส่งให้ Browser เมื่อร้องขอหน้าเว็บ รหัสที่ขึ้นต้นด้วย 4xx หมายถึง Error ฝั่ง Client รหัส 5xx หมายถึง Error ฝั่ง Server

2. Error 500 Internal Server Error

Error 500 คือ Error ที่พบบ่อยที่สุดและแก้ยากที่สุด เพราะ Server ไม่บอกว่าเกิดอะไรขึ้น ต้องดู Error Log เพื่อหาต้นเหตุ

สาเหตุที่พบบ่อย

วิธีแก้ .htaccess

เปลี่ยนชื่อ .htaccess เป็น .htaccess.bak แล้วรีโหลดเว็บ ถ้าหาย Error แสดงว่า .htaccess เป็นตัวการ ให้แก้ไข Syntax ใน .htaccess ทีละบรรทัด

วิธีแก้ PHP Memory

เพิ่มบรรทัดนี้ใน .htaccess:

php_value memory_limit 256M
php_value max_execution_time 300
php_value post_max_size 64M
php_value upload_max_filesize 64M

WordPress: เพิ่ม define('WP_MEMORY_LIMIT', '256M'); ใน wp-config.php เพื่อเพิ่ม Memory ให้ WordPress โดยเฉพาะ

3. Error 403 Forbidden

Error 403 หมายความว่า Server เข้าใจ Request แต่ปฏิเสธไม่ให้เข้าถึง เหตุผลหลักคือ:

สาเหตุ

วิธีแก้ Permission

ใน DirectAdmin → File Manager → เลือกไฟล์ → Change Permissions:

# ไฟล์ PHP/HTML ทั่วไป
chmod 644 filename.php

# Directory
chmod 755 /public_html/dirname

# ถ้าต้องการ recursive สำหรับ folder
find /public_html -type f -exec chmod 644 {} \;
find /public_html -type d -exec chmod 755 {} \;

4. Error 404 Not Found

Error 404 หมายถึงไม่พบ Resource ที่ขอ อาจเป็นเพราะ:

วิธีแก้สำหรับ WordPress

ไปที่ Settings → Permalinks → คลิก "Save Changes" โดยไม่ต้องเปลี่ยนอะไร การกระทำนี้จะ Flush .htaccess ของ WordPress ใหม่

วิธีแก้ด้วย Custom Error Page

เพิ่มใน .htaccess เพื่อ Redirect 404 ไปยังหน้า Custom:

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
ErrorDocument 500 /500.html

5. วิธีดู Error Log ใน DirectAdmin

Error Log เป็นเครื่องมือสำคัญที่สุดในการ Debug Error บน Hosting เพราะแสดงข้อความ Error จริงที่ PHP หรือ Apache สร้างขึ้น

วิธีเปิด Error Log

  1. Login DirectAdmin
  2. ไปที่ Advanced FeaturesSite Summary / Statistics / Logs
  3. คลิก Error Log หรือ error_log

ตัวอย่างข้อความ Error ที่พบใน Error Log:

[Mon May 12 10:23:45 2026] [error] PHP Fatal error:
  Allowed memory size of 134217728 bytes exhausted
  in /home/user/domains/example.com/public_html/wp-load.php on line 456

[Mon May 12 11:05:12 2026] [error] PHP Parse error:
  syntax error, unexpected '}' in
  /home/user/domains/example.com/public_html/functions.php on line 89

เปิด PHP Error Display: ถ้าไม่เห็น Error บนหน้าจอ ให้เพิ่ม ini_set('display_errors', 1); และ error_reporting(E_ALL); ต้นไฟล์ PHP ชั่วคราวเพื่อ Debug (ห้ามใช้ใน Production)

6. Error 502 และ 508 — Bad Gateway และ Resource Limit

นอกจาก Error 500/403/404 ที่พบบ่อยแล้ว ยังมี Error Code อีกสองตัวที่ผู้ใช้ Hosting มักพบเจอ โดยเฉพาะเมื่อเว็บไซต์มี Traffic สูงหรือ Script ทำงานหนัก

502 Bad Gateway

Error 502 เกิดขึ้นเมื่อ Server กลางไม่ได้รับคำตอบที่ถูกต้องจาก Backend Server ที่ติดต่อ สาเหตุหลักบน Shared Hosting คือ:

วิธีแก้ชั่วคราวคือรอ 30-60 วินาทีแล้วลองใหม่ ถ้าเกิดซ้ำบ่อยให้ตรวจ Error Log และพิจารณา Optimize Script หรือติดต่อ Support เพื่อตรวจสอบสภาพเซิร์ฟเวอร์

508 Resource Limit Reached

Error 508 เป็น Error เฉพาะของ cPanel และ DirectAdmin แสดงเมื่อเว็บไซต์ใช้ทรัพยากรเกิน Quota ที่แพ็กเกจกำหนด ได้แก่ CPU Time, RAM, หรือ I/O

7. การป้องกัน Error ล่วงหน้า — Best Practice

การแก้ Error ได้เร็วนั้นสำคัญ แต่การป้องกันไม่ให้เกิดตั้งแต่แรกสำคัญกว่า ต่อไปนี้คือแนวทางที่ช่วยลดความถี่ของ Error บน Hosting ได้อย่างมีประสิทธิภาพ

เปิด PHP Error Logging แทน Error Display

บน Production Server ห้ามแสดง Error บนหน้าจอเพราะเปิดเผยข้อมูล ให้ Log ไว้ในไฟล์แทน:

# ใน .htaccess
php_flag display_errors off
php_flag log_errors on
php_value error_log /home/USER/error_php.log

ทดสอบ .htaccess ก่อน Deploy

Syntax Error ใน .htaccess เป็นสาเหตุอันดับหนึ่งของ Error 500 ใช้เครื่องมือตรวจสอบ Syntax ก่อนเสมอ:

# บน Linux/Mac — ถ้ามี Apache
apachectl -t

# หรือใช้ Online Validator เช่น
# https://htaccess.madewithlove.com/

ตรวจ Permission หลัง Upload ไฟล์

ไฟล์ที่ Upload ผ่าน FTP มักมี Permission ผิดพลาด ให้ตรวจและแก้ทันทีหลัง Upload:

# ตรวจ Permission ที่ผิดปกติ (777 หรือ 000)
find /public_html -type f -perm 777
find /public_html -type f -perm 000

# แก้ทั้งหมดพร้อมกัน
find /public_html -type f -exec chmod 644 {} \;
find /public_html -type d -exec chmod 755 {} \;

ตั้ง Custom Error Pages เพื่อ UX ที่ดีกว่า

เมื่อเกิด Error ผู้ใช้ควรเห็นหน้าที่อธิบายปัญหาและชี้ทางออก แทนที่จะเห็นหน้าว่างเปล่า สร้างหน้า Error แบบ Custom ได้ง่ายๆ ใน .htaccess:

ErrorDocument 400 /errors/400.html
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

WordPress: ใช้ Plugin เช่น "404page" หรือ "Custom 404 Pro" เพื่อตั้งค่าหน้า Error แบบ Custom โดยไม่ต้องแก้ไฟล์ด้วยตัวเอง

8. เครื่องมือ Debug Error บน DirectAdmin

DirectAdmin มีเครื่องมือสำหรับ Debug ที่ช่วยหาต้นเหตุของ Error ได้รวดเร็วกว่าการเดา ครอบคลุมทั้ง Error Log, Access Log และการตรวจ Resource Usage

เครื่องมือ ตำแหน่งใน DirectAdmin ใช้แก้
Error LogAdvanced → Site Summary / LogsError 500, PHP Fatal, Parse Error
Access LogAdvanced → Site Summary / Logsตรวจ URL ที่ Error + IP ที่เข้ามา
Resource UsageAccount Manager → Resource UsageError 508, CPU/RAM Spike
File ManagerAdvanced → File Managerแก้ Permission, แก้ไฟล์ .htaccess
PHP SettingsAdvanced → PHP Configเปลี่ยน Memory Limit, Timeout

อ่าน Error Log อย่างมีประสิทธิภาพ

Error Log อาจมีข้อความยาวมาก ให้ใช้ keyword ค้นหาเพื่อกรองเฉพาะ Error ที่เกี่ยวข้อง:

# ค้นหาเฉพาะ Fatal Error
grep -i "Fatal error" error_log | tail -20

# ค้นหา Error ใน 1 ชั่วโมงที่ผ่านมา
grep "$(date +'%b %d %H')" error_log | grep -i error | tail -50

# ดูไฟล์ที่ Error บ่อยที่สุด
grep -i "error" error_log | grep -oP 'in /[^ ]+' | sort | uniq -c | sort -rn | head -10

9. ความแตกต่างของ Error บน Shared Hosting กับ VPS

การเข้าใจว่า Error แต่ละประเภทมีพฤติกรรมต่างกันบน Shared Hosting กับ VPS ช่วยให้ตัดสินใจเลือก Hosting ที่เหมาะสมกับขนาดและความต้องการของเว็บไซต์ได้ถูกต้องมากขึ้น

Shared Hosting — ข้อจำกัดที่ต้องรู้

บน Shared Hosting ทรัพยากรถูกแบ่งปันระหว่าง User หลายราย ทำให้มี Error บางประเภทที่เกิดได้ง่ายกว่า:

VPS — ความยืดหยุ่นที่มากกว่า

บน VPS คุณได้รับ Resources ส่วนตัว ไม่แชร์กับ User อื่น จึงแก้ Error ได้ง่ายและเต็มที่กว่า:

แนะนำ: ถ้าเว็บไซต์ของคุณมี Error 508 หรือ Error 500 จาก Memory เป็นประจำ อาจถึงเวลาที่ต้องพิจารณาย้ายไปใช้ VPS เพื่อ Resources ที่เพียงพอและควบคุมได้เต็มที่ AsiaGB VPS เริ่มต้นที่ 500 บาท/เดือน รองรับ WordPress, Node.js, Laravel และแอปพลิเคชันทุกประเภท

เมื่อไหรที่ควรย้ายจาก Shared Hosting ไป VPS

มีสัญญาณบ่งชี้ที่ชัดเจนว่าถึงเวลาต้องเปลี่ยน Hosting แล้ว ไม่ว่าจะเป็นเรื่อง Error ที่เกิดซ้ำๆ หรือ Performance ที่ไม่ตอบสนองความต้องการ ดังนี้

การย้ายจาก Shared Hosting มา VPS ไม่จำเป็นต้องซับซ้อน AsiaGB มีบริการ Migration ช่วยย้ายข้อมูล Database และ File ทั้งหมดโดยไม่มี Downtime เพิ่มเติม

10. สรุปตาราง Error Summary

Error Codeชื่อสาเหตุที่พบบ่อยวิธีแก้เร็ว
500Internal Server Error.htaccess ผิด / PHP Error / Memory เกินเปลี่ยนชื่อ .htaccess / ดู Error Log
403ForbiddenPermission ผิด / ไม่มี index filechmod 755/644 / สร้าง index.html
404Not Foundไฟล์ถูกลบ / Permalink ผิดFlush Permalink / ตรวจ URL
502Bad GatewayPHP-FPM Crash / Server Overloadติดต่อ Support
508Resource Limit ReachedCPU/RAM เกิน QuotaOptimize Code / Upgrade Plan

Hosting เสถียร Uptime 99% พร้อม Support ตลอด 24 ชม.

AsiaGB Hosting เริ่มต้น 500 บาท/ปี พร้อม DirectAdmin, Error Log, PHP 7.4/8.2/8.3 และ SSD Storage ทีม Support พร้อมช่วยแก้ Error ทุกปัญหา

ดูแพ็กเกจ Hosting