PHP Extension คืออะไร ทำไมต้องเปิด
PHP Extension คือโมดูลเสริมที่เพิ่มความสามารถให้ PHP เช่น จัดการรูปภาพ (gd), เชื่อมฐานข้อมูล (mysqli, pdo_mysql), เข้ารหัส (openssl), หรือจัดการ ZIP (zip) แอปอย่าง WordPress, WooCommerce, Laravel ต้องการ Extension เฉพาะตัว ถ้าขาดจะทำงานไม่ครบหรือแสดง Error
เปิด/ปิด Extension ผ่าน Select PHP Version
- Login cPanel → Section "Software" → คลิก "Select PHP Version" (บางธีมชื่อ "MultiPHP Manager" แล้วเข้า Extensions)
- จะเห็นแท็บ "Extensions" พร้อม Checkbox ของแต่ละโมดูล
- ติ๊กเปิด Extension ที่ต้องการ หรือเอาติ๊กออกเพื่อปิด
- ระบบบันทึกอัตโนมัติทันทีที่ติ๊ก — ไม่ต้องกดปุ่ม Save แยก
Extension ที่ควรเปิดสำหรับเว็บทั่วไป
| Extension | ใช้ทำอะไร |
|---|---|
| gd / imagick | ปรับขนาด/แก้ไขรูปภาพ (WordPress Thumbnail) |
| mysqli, pdo_mysql | เชื่อมต่อฐานข้อมูล MySQL |
| curl | เรียก API ภายนอก / อัปเดตปลั๊กอิน |
| mbstring | จัดการข้อความหลายภาษา (ภาษาไทย/UTF-8) |
| openssl | เข้ารหัส SSL / ชำระเงิน |
| zip | แตก/บีบไฟล์ (ติดตั้งปลั๊กอิน, Backup) |
| intl | จัดรูปแบบวันที่/ตัวเลขตาม Locale |
| exif | อ่านข้อมูล Meta ของรูปถ่าย |
ปรับค่า PHP ผ่าน MultiPHP INI Editor
นอกจากเปิด Extension บางแอปต้องปรับค่า เช่น memory_limit หรือ upload_max_filesize ทำได้ที่ cPanel → "MultiPHP INI Editor" เลือกโดเมนแล้วปรับค่าในโหมด Basic
# ค่าแนะนำสำหรับ WordPress/WooCommerce
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120
max_input_vars = 3000
ถ้าต้องการเพิ่มบรรทัด directive แบบกำหนดเอง ใช้โหมด Editor หรือเพิ่มในไฟล์ .user.ini อ่านเพิ่มที่ ปรับค่า php.ini ใน cPanel
ตรวจสอบว่า Extension เปิดทำงานถูกต้อง
# 1. สร้างไฟล์ phpinfo ชั่วคราวใน File Manager (ลบทันทีหลังตรวจ)
<?php phpinfo(); ?>
# เปิด yourdomain.com/phpinfo.php แล้วค้นหาชื่อ Extension
# 2. ตรวจผ่าน Terminal cPanel (ถ้ามี)
php -m | grep -i gd
php -m | grep -i curl
# ถ้ามีชื่อขึ้นมาแสดงว่าเปิดแล้ว
# 3. ตรวจใน WordPress
Tools → Site Health → Info → Server
# ดูรายการ PHP extensions ที่ active
แก้ปัญหาที่พบบ่อย
เปิด Extension แล้วแต่เว็บยังบอกว่าขาด
ตรวจว่าเปิดบน PHP Version ที่เว็บใช้จริง ไม่ใช่เวอร์ชันอื่น และเคลียร์ OPcache โดยรอสักครู่หรือสลับเวอร์ชันไป-กลับเพื่อให้โหลดค่าใหม่
หา Extension ที่ต้องการไม่เจอในรายการ
Shared Hosting บางแห่งไม่ได้คอมไพล์ Extension ทุกตัว (เช่น imagick, redis) ถ้าไม่มีในรายการให้ติดต่อผู้ให้บริการเพื่อขอเปิด หรือใช้ Extension ทดแทน (เช่น gd แทน imagick)
เว็บพังหลังเปิด/ปิด Extension
มักเป็นเพราะปิด Extension ที่จำเป็น (เช่น mysqli) ให้กลับไปเปิดคืน ถ้าจำไม่ได้ว่าเปลี่ยนอะไร ให้กดปุ่ม "Reset to Default" หรือเลือกชุด Extension มาตรฐานของ Hosting
เปลี่ยนค่าใน INI Editor แล้วไม่มีผล
ตรวจว่าเลือกโดเมนถูกต้อง และค่าไม่ถูก Lock โดยผู้ให้บริการ บางค่า (เช่น disable_functions) ผู้ใช้แก้ไม่ได้เพื่อความปลอดภัยของ Server ต้องขอผ่าน Support
คำถามที่พบบ่อย
Q: เปิด Extension เยอะๆ ทำให้เว็บช้าลงไหม?
A: มีผลเล็กน้อยเพราะแต่ละ Extension กินหน่วยความจำเพิ่ม ควรเปิดเฉพาะที่ใช้จริง การปิดตัวที่ไม่ได้ใช้ช่วยให้ PHP เบาขึ้นเล็กน้อยและลดพื้นที่โจมตี
Q: ต่างจากการติดตั้ง Extension บน VPS อย่างไร?
A: บน cPanel แค่ติ๊ก Checkbox ก็เปิดได้ทันที ส่วนบน VPS ต้องติดตั้งผ่าน Command Line และ Restart PHP-FPM เอง cPanel จึงสะดวกกว่ามากสำหรับมือใหม่ แต่จำกัดเฉพาะ Extension ที่ผู้ให้บริการเตรียมไว้
Q: เปลี่ยน Extension แล้วกระทบเว็บอื่นใน Account เดียวกันไหม?
A: ขึ้นกับการตั้งค่า ถ้าทุกโดเมนใช้ PHP Version เดียวกัน การเปลี่ยน Extension จะมีผลทั้งหมด ถ้าต้องการแยก ให้ใช้ MultiPHP กำหนดเวอร์ชันต่างกันต่อโดเมน