คู่มือ Apache HTTP Server บน DirectAdmin Hosting และการตั้งค่า htaccess สำหรับ WordPress และ PHP
ข่าวสาร | .., 18 ตุลาคม 2568 | แนะนำ
ภาพรวม Apache HTTP Server บนโฮสติ้ง DirectAdmin
Apache HTTP Server เป็นเว็บเซิร์ฟเวอร์ยอดนิยมที่ใช้งานแพร่หลายในโฮสติ้งร่วม โดย DirectAdmin ช่วยให้การจัดการโดเมน อีเมล และโฟลเดอร์เว็บไซต์ทำได้ง่าย ร่วมกับไฟล์ .htaccess เพื่อควบคุมรีไรต์ กำหนดเฮดเดอร์ และเพิ่มมาตรการความปลอดภัยในระดับไดเรกทอรี
โครงสร้างไฟล์และจุดสำคัญ
- Document Root : โฟลเดอร์
public_html(หรือโฟลเดอร์ย่อยของโดเมน/ซับโดเมน) บน File Manager - .htaccess : ไฟล์กำหนดพฤติกรรม Apache รายไดเรกทอรี เช่น รีไรต์ ยูอาร์แอล ปิดไดเรกทอรีลิสต์ เพิ่ม Security Headers
- error_log / access_log : ที่ใช้ตรวจสอบข้อผิดพลาดและทราฟฟิก (ดูได้จาก Log Viewer ของโฮสต์)
ตั้งค่า URL Rewrite พื้นฐาน
เปิดใช้โมดูลรีไรต์สำหรับเว็บแอปและ WordPress (โครงสร้างลิงก์ถาวร)
# เปิดใช้ Rewrite Engine
RewriteEngine On
# บังคับ www → non-www (ตัวอย่าง)
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
# WordPress Permalinks
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
ต้องการทดสอบรีไรต์ แนะนำสร้างเพจทดสอบและตรวจด้วย HTTP Check และ Redirect 301 ตรวจสอบ
เพิ่มความเร็วด้วย Gzip Deflate และ Cache Headers
บีบอัดทราฟฟิกและกำหนดอายุแคชสำหรับไฟล์สแตติก เพื่อลดขนาดที่ส่งระหว่างเซิร์ฟเวอร์กับเบราว์เซอร์
# เปิดการบีบอัด (mod_deflate)
AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json image/svg+xml
# Caching Header
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 30 days"
ExpiresByType application/javascript "access plus 30 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType image/jpeg "access plus 30 days"
ExpiresDefault "access plus 7 days"
</IfModule>
# ETag/Cache-Control
Header set Cache-Control "public, max-age=2592000"
ตรวจคะแนน Core Web Vitals เพิ่มเติมด้วย PageSpeed และแนะนำเปิดใช้ OPcache ในระดับ PHP
เสริมความปลอดภัยด้วย Security Headers
ลดความเสี่ยง XSS, Clickjacking และเนื้อหาไม่ปลอดภัย
# ป้องกัน Clickjacking
Header always set X-Frame-Options "SAMEORIGIN"
# ป้องกัน XSS บางส่วน
Header set X-XSS-Protection "1; mode=block"
# ปิดการเดา MIME Type
Header set X-Content-Type-Options "nosniff"
# Content Security Policy (ปรับให้เหมาะกับเว็บ)
Header set Content-Security-Policy "default-src 'self'; img-src 'self' data: https:; script-src 'self' https: 'unsafe-inline'; style-src 'self' https: 'unsafe-inline'"
# HSTS (ใช้เมื่อเว็บบังคับ HTTPS แล้ว)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
อย่าลืมบังคับ HTTPS และติดตั้ง SSL ให้ครบทั้งโดเมนหลักและซับโดเมน
ปิด Directory Listing และกัน Hotlink
# ปิดการแสดงไดเรกทอรี
Options -Indexes
# กัน Hotlink รูปภาพ (อนุญาตเฉพาะโดเมนตัวเอง)
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com/ [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F,NC]
ทดสอบด้วย Security Scan และตรวจลิงก์ภายนอกที่ดึงรูปจากเว็บคุณ
ตั้งค่า PHP ที่ระดับไดเรกทอรี
บนโฮสต์ที่รัน PHP-FPM แนะนำใช้ .user.ini แทน .htaccess สำหรับ PHP directives
; .user.ini
memory_limit=256M
upload_max_filesize=128M
post_max_size=128M
max_execution_time=300
สอบทานเวอร์ชัน PHP และสวิตช์ผ่าน Select PHP Version ใน DirectAdmin
แนวทางทำงานจริงกับ WordPress
- Permalinks : เปิด Permalinks และตรวจ .htaccess ไม่ชนกับปลั๊กอินรีไรต์
- Cache Plugin : ใช้ร่วมกับ Page Cache และตั้ง Cache-Control ให้สอดคล้อง
- Security : ปิด XML-RPC หากไม่ใช้ และจำกัด wp-login ด้วย rate limit / reCAPTCHA
- Media : ใช้ CDN สำหรับรูป/ไฟล์ใหญ่เพื่อลดภาระ Apache
# ตัวอย่างปิด xmlrpc
<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>
ดีบักและแก้ปัญหาที่พบบ่อย
- 500 Internal Server Error : เช็กไวยากรณ์ .htaccess, ปิดกฎบางส่วนทีละบรรทัด, ตรวจ error_log
- 404 หลังเปิด Permalinks : ตรวจ RewriteEngine, RewriteBase, และไฟล์จริง/โฟลเดอร์
- โหลดช้า : เปิดบีบอัด, ตั้งแคช, เปิด OPcache, ใช้ Object Cache
- คอนฟลิกต์ปลั๊กอิน : ปิดปลั๊กอินต้องสงสัย, เปิดโหมดดีบัก WP_DEBUG, ตรวจฮุกที่เขียนทับ .htaccess
เช็กลิสต์ก่อนขึ้นระบบจริง
- บังคับ HTTPS และเปิด HSTS
- ตั้งแคชเฮดเดอร์และบีบอัดไฟล์สแตติก
- ปิด Directory Listing และกัน Hotlink
- เพิ่ม Security Headers ขั้นพื้นฐาน
- เปิด OPcache และตรวจเวอร์ชัน PHP
- ทดสอบ PageSpeed และแก้ LCP/CLS/INP ตามรายงาน
สอบถามได้ที่ Line, Topvery Cloud IDC
เมื่อคุณเจอบัญชีนั้น, คลิก "เพิ่มเพื่อน" หรือ "ติดตาม" เปิดแอป LINE บนอุปกรณ์ของคุณ ไปที่แท็บ เพื่อน ที่มุมล่างขวา กดที่ไอคอน เพิ่มเพื่อน ที่อยู่บนขวามือ ในหน้าต่างที่ปรากฏขึ้น, คุณสามารถค้นหาบัญชี LINE Official ที่ต้องการด้วยชื่อ เมื่อคุณเจอบัญชีนั้น, คลิก เพิ่มเพื่อน หรือ ติดตาม
แอดไลน์ ID @topvery
แอดไลน์ ID @topvery คลิก..?