
คู่มือ 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 ตามรายงาน