การติดตั้ง WordPress บน nginx ถ้ามี php อยู่แล้วโดยปกติจะสามารถใช้ php extension ที่มีติดมากับ package ของ linux server ได้เลย แต่ถ้าอยากจะให้เวิร์ดเพรสส์ทำงานได้เต็มที่ ก็ควรจะเพิ่ม php extension ตาม PHP Extensions
คู่มือติดตั้ง PHP Extensions สำหรับ WordPress บน Nginx Server
การรัน WordPress บน Nginx ให้ทำงานได้อย่างเต็มประสิทธิภาพ รวดเร็ว และปลอดภัยนั้น ไม่ได้ขึ้นอยู่กับแค่การจูน Config ของ Nginx เพียงอย่างเดียว แต่ “หัวใจ” สำคัญคือ PHP Extensions ที่ติดตั้งลงในเครื่อง Server ครับ
บทความนี้สรุปรายการ PHP Extensions ที่ จำเป็น (Required) และ แนะนำ (Recommended) ตามมาตรฐานของทีมพัฒนา WordPress พร้อมวิธีติดตั้งสำหรับสาย System Admin ที่ใช้ Nginx ครับ
- ทำไมต้องติดตั้งให้ครบ?
WordPress Handbook แบ่ง Extension ออกเป็นกลุ่มๆ หากติดตั้งไม่ครบอาจเกิดปัญหาดังนี้:- ขาดตัว Required: เว็บจะพังทันที (เช่น เชื่อมต่อฐานข้อมูลไม่ได้)
- ขาดตัว Recommended: ฟีเจอร์บางอย่างจะหายไป (เช่น อัปโหลดรูปแล้วภาพไม่ชัด, ตัดคำภาษาไทยผิดเพี้ยน, หรืออัปเดตปลั๊กอินไม่ได้)
- รายการ Extensions ที่ต้องมี (Checklist)
- กลุ่ม A: บังคับต้องมี (Required)
ถ้าไม่มีกลุ่มนี้ WordPress จะรันไม่ได้เลยjson: ใช้จัดการข้อมูล JSON (จำเป็นมากสำหรับการสื่อสารระหว่าง Server และ REST API)mysqli: ใช้เชื่อมต่อฐานข้อมูล MySQL หรือ MariaDB
- กลุ่ม B: แนะนำเป็นอย่างยิ่ง (Highly Recommended)
เพื่อให้เว็บทำงานได้สมบูรณ์และรองรับปลั๊กอินส่วนใหญ่curl: สำหรับยิง Request ไปภายนอก (เช่น การเช็ค update, การดึง feed)dom/xml: จัดการ XML (ใช้ใน sitemap และ theme หลายตัว)exif: อ่านข้อมูล metadata ของรูปภาพfileinfo: ตรวจสอบประเภทไฟล์ที่อัปโหลด (MIME types)hash: สำหรับการเข้ารหัสและความปลอดภัยimagick: (สำคัญ) ใช้จัดการรูปภาพ หากไม่มีตัวนี้ WordPress จะถอยไปใช้ GD Library ซึ่งคุณภาพรูปจะแย่กว่าและกินแรมมากกว่าในบางกรณีintl: จัดการเรื่องภาษา วันที่ และสกุลเงิน (จำเป็นมากสำหรับเว็บภาษาไทยหรือ Multilingual)mbstring: จัดการข้อความ UTF-8 (สำคัญที่สุดสำหรับการตัดคำภาษาไทยและชื่อไฟล์ภาษาไทย)openssl: รองรับการเชื่อมต่อแบบ SSL/HTTPSzip: ใช้แตกไฟล์เวลาติดตั้งหรืออัปเดต Theme/Plugin
- กลุ่ม C: เพื่อประสิทธิภาพ (Performance & Caching)
opcache: ช่วย cache PHP code ที่ compile แล้ว ทำให้เว็บโหลดเร็วขึ้นมาก (ต้องเปิด!)redisหรือapcu: สำหรับทำ Object Cache (แนะนำ Redis สำหรับ Production)
- กลุ่ม A: บังคับต้องมี (Required)
- วิธีติดตั้งบน Nginx (Ubuntu/Debian)
นื่องจาก Nginx มักจะทำงานร่วมกับ PHP-FPM การติดตั้ง Extension จะทำผ่าน Package Manager ของ OS (เช่นaptบน Ubuntu)
คำสั่งติดตั้งแบบรวดเร็ว (One-liner): (ตัวอย่างสำหรับ PHP 8.1 – 8.3 ให้เปลี่ยนตัวเลขเวอร์ชันตามที่คุณใช้อยู่)sudo apt update
sudo apt install php8.3-mysql php8.3-curl php8.3-xml php8.3-mbstring \
php8.3-imagick php8.3-zip php8.3-intl php8.3-bcmath php8.3-soap \
php8.3-gd php8.3-readline php8.3-msgpack php8.3-igbinary php8.3-redis
Note: ในคำสั่งมีการแถมphp-bcmath(สำหรับคำนวณเลขทศนิยมแม่นยำ ใชบ่อยในปลั๊กอิน WooCommerce) และphp-soap(สำหรับเชื่อมต่อ Gateway บางตัว) ซึ่งมักจำเป็นในการใช้งานจริง - ข้อควรระวังสำหรับ Nginx Users
หลังจากติดตั้ง Extension เสร็จแล้ว “อย่า Restart แค่ Nginx”
Nginx ทำหน้าที่เป็น Proxy ส่งข้อมูลไปให้ PHP ประมวลผล ตัว Extensions ฝังอยู่ที่ PHP Process ดังนั้นคุณต้อง Restart Service ของ PHP-FPM ด้วยเพื่อให้ค่าใหม่เริ่มทำงาน# Restart PHP-FPM (เปลี่ยน 8.3 เป็นเวอร์ชันที่คุณใช้)
sudo systemctl restart php8.3-fpm
# Reload Nginx เพื่อความชัวร์ (Optional)
sudo systemctl reload nginx - วิธีตรวจสอบว่าติดตั้งสำเร็จหรือไม่
วิธีที่ง่ายที่สุดคือการใช้คำสั่ง CLI หรือสร้างไฟล์info.php
ตรวจสอบผ่าน Terminal: พิมพ์คำสั่งนี้เพื่อดู Module ที่โหลดขึ้นมาทั้งหมดphp -m
หรือเจาะจงดูตัวที่สำคัญ เช่น Imagick:php -m | grep imagick
ตรวจสอบผ่าน WordPress: ใน WordPress เวอร์ชันใหม่ๆ มีเครื่องมือตรวจสอบมาให้แล้ว ไปที่: Tools (เครื่องมือ) > Site Health (สุขภาพหน้าเว็บ) > Server (เซิร์ฟเวอร์) ในหน้านี้จะแสดงรายการ PHP Extensions ทั้งหมดที่ระบบมองเห็น หากขาดตัวไหนไป ระบบจะแจ้งเตือนทันที
อ่านเพิ่มเติม
