
PHP Version ที่ใช้บน Hosting มีผลโดยตรงต่อความเร็ว ความปลอดภัย และความเข้ากันได้ของ Plugin และ Theme DirectAdmin ของ AsiaGB รองรับ PHP หลายเวอร์ชันและให้คุณเปลี่ยนได้เองผ่าน Control Panel โดยไม่ต้องติดต่อ Support
PHP Settings ใน DirectAdmin อยู่ที่ไหน
ฟีเจอร์การจัดการ PHP ใน DirectAdmin อยู่ในส่วน Advanced Features ซึ่งคุณจะพบได้หลังจาก Login เข้าระบบ:
- Login เข้า DirectAdmin ของคุณ
- ไปที่หมวด Advanced Features
- คลิก PHP Selector หรือ Select PHP Version
ในบางเวอร์ชันของ DirectAdmin อาจมีชื่อว่า PHP Configuration หรืออยู่ใต้ Domain Setup ขึ้นอยู่กับธีมของ Control Panel
PHP Versions ที่รองรับใน AsiaGB
AsiaGB รองรับ PHP 3 เวอร์ชันหลัก เพื่อให้รองรับทั้งเว็บไซต์ใหม่และระบบเก่าที่ยังต้องการ PHP เวอร์ชันเก่า:
- PHP 8.3 — เวอร์ชันล่าสุด ประสิทธิภาพสูงสุด มี JIT Compiler ที่ปรับปรุงใหม่ เหมาะสำหรับโปรเจกต์ใหม่
- PHP 8.2 — เวอร์ชันแนะนำสำหรับ WordPress 6.x และ WooCommerce เสถียรและรองรับ Plugin ส่วนใหญ่
- PHP 7.4 — เวอร์ชันเก่าสำหรับระบบที่ยังไม่ Compatible กับ PHP 8.x หรือ Plugin เก่าบางตัว
วิธีเปลี่ยน PHP Version ทีละขั้น
- เข้า DirectAdmin แล้วไปที่ Advanced Features > PHP Selector
- เลือกโดเมนที่ต้องการเปลี่ยน PHP Version ในช่อง Domain (หากมีหลายโดเมน)
- เลือก PHP Version ที่ต้องการจาก dropdown เช่น
PHP 8.2 - คลิก Save หรือ Apply
- รอสักครู่แล้ว Refresh หน้าเว็บเพื่อยืนยันว่าเปลี่ยนสำเร็จ
การเปลี่ยน PHP Version มีผลทันทีโดยส่วนใหญ่ ไม่จำเป็นต้อง Restart Server ให้ทดสอบเว็บไซต์หลังเปลี่ยนเสมอเพื่อให้แน่ใจว่าไม่มี Error
ตรวจสอบ PHP Version ด้วยไฟล์ phpinfo.php
หลังเปลี่ยน PHP Version แล้ว สามารถยืนยันได้โดยสร้างไฟล์ทดสอบ:
- สร้างไฟล์ชื่อ
phpinfo.phpใน public_html ด้วย File Manager - เนื้อหาของไฟล์:
<?php phpinfo(); ?> - เปิด Browser แล้วไปที่
https://yoursite.com/phpinfo.php - PHP Version จะแสดงที่บรรทัดแรกของหน้า
- ลบไฟล์นี้ทิ้งทันที หลังตรวจสอบเสร็จ เพราะเปิดเผยข้อมูล Server
PHP Extensions: เปิด/ปิด Extension ที่จำเป็น
PHP Extensions คือโมดูลเพิ่มเติมที่ให้ PHP ทำงานร่วมกับระบบอื่นได้ DirectAdmin ให้คุณเปิดหรือปิด Extension ได้เองตามต้องการ:
- mysqli / PDO — จำเป็นสำหรับ MySQL Database (เปิดอยู่แล้วโดยปริยาย)
- curl — จำเป็นสำหรับ API calls และ Payment Gateway
- gd / imagick — จำเป็นสำหรับการประมวลผลรูปภาพ
- mbstring — จำเป็นสำหรับรองรับภาษาไทยและ Unicode
- zip — จำเป็นสำหรับ WordPress Plugin/Theme installer
- intl — จำเป็นสำหรับระบบหลายภาษาและการจัดรูปแบบตัวเลข
ไปที่ PHP Selector แล้วคลิก Extensions เพื่อดู Extension ทั้งหมดและเปิด/ปิดตามต้องการ
php.ini: ตัวแปรสำคัญที่ควรรู้
php.ini คือไฟล์ตั้งค่า PHP ที่กำหนดพฤติกรรมต่างๆ ตัวแปรที่มักต้องปรับสำหรับเว็บไซต์ทั่วไป:
- upload_max_filesize — ขนาดไฟล์สูงสุดที่ Upload ได้ (ค่าเริ่มต้น 2MB, แนะนำ 64MB สำหรับเว็บ)
- post_max_size — ขนาด POST data สูงสุด ต้องมากกว่าหรือเท่ากับ upload_max_filesize
- memory_limit — RAM สูงสุดที่ PHP ใช้ได้ต่อ Request (ค่าเริ่มต้น 128MB, WordPress แนะนำ 256MB)
- max_execution_time — เวลาสูงสุดที่ Script รันได้ (วินาที) ป้องกัน Script วนซ้ำ
- max_input_vars — จำนวน Input Variables สูงสุด สำคัญสำหรับเว็บที่มีฟอร์มหรือ Menu ขนาดใหญ่
ใน DirectAdmin ไปที่ PHP Selector แล้วคลิก php.ini เพื่อแก้ไขค่าโดยตรง หรือสร้างไฟล์ .user.ini ใน public_html เพื่อ Override ค่าเฉพาะโดเมนนั้น
คำแนะนำ: WordPress และ WooCommerce แนะนำให้ใช้ PHP 8.2 ขึ้นไปสำหรับประสิทธิภาพสูงสุดและการรองรับ Security Patch ล่าสุด ส่วน Legacy Plugin หรือระบบเก่าที่ยังไม่ได้รับการอัปเดตอาจต้องการ PHP 7.4 หากอัปเกรดแล้วเว็บพัง ให้ย้อนกลับเป็น PHP 7.4 ก่อนแล้วติดต่อผู้พัฒนา Plugin
การเลือก PHP Version ที่เหมาะสมกับ CMS และ Framework
การเลือก PHP Version ที่ถูกต้องเป็นขั้นตอนแรกที่สำคัญก่อนติดตั้งหรืออัปเกรดเว็บไซต์ แต่ละ CMS และ Framework มีความต้องการ PHP Version ที่แตกต่างกัน ดังนี้
- WordPress 6.x — ต้องการ PHP 7.4 ขึ้นไป แต่แนะนำ PHP 8.0 หรือสูงกว่า เพื่อประสิทธิภาพสูงสุด
- WooCommerce 8.x — แนะนำ PHP 8.1 หรือ 8.2 รองรับ Performance และ Type Safety ที่ดีขึ้น
- Laravel 10.x/11.x — ต้องการ PHP 8.1 ขึ้นไป Laravel 11 ต้องการ PHP 8.2 เป็นอย่างน้อย
- Joomla 4.x — รองรับ PHP 7.4 ถึง 8.3 แนะนำ PHP 8.1 สำหรับความเสถียรสูงสุด
- Drupal 10.x — ต้องการ PHP 8.1 ขึ้นไป ไม่รองรับ PHP 7.x อีกต่อไป
- Magento 2.4.x — รองรับ PHP 8.1 และ 8.2 เท่านั้น ไม่รองรับ PHP 7.x
- Symfony 6.x/7.x — ต้องการ PHP 8.1 ขึ้นไป Symfony 7 ต้องการ PHP 8.2
- CodeIgniter 4.x — รองรับ PHP 7.4 ขึ้นไป แนะนำ PHP 8.x สำหรับ performance ดีขึ้น
ก่อนอัปเกรด PHP Version ควรตรวจสอบ Plugin หรือ Extension ทุกตัวว่ารองรับ Version ใหม่หรือไม่ โดยดูจากหน้า Changelog หรือ Repository ของผู้พัฒนา หากมี Plugin เก่าที่ไม่ได้รับการอัปเดตมานานเกิน 2 ปี ให้ลองทดสอบใน Staging Environment ก่อนเสมอ
การตั้งค่า php.ini ที่สำคัญสำหรับเว็บไซต์จริง
นอกจากค่าพื้นฐานที่กล่าวไปแล้ว ยังมีค่าใน php.ini อีกหลายตัวที่ส่งผลต่อพฤติกรรมของเว็บไซต์โดยตรง โดยเฉพาะเว็บที่รองรับการอัปโหลดไฟล์หรือมีการประมวลผลข้อมูลขนาดใหญ่
ค่าที่แนะนำสำหรับ WordPress / WooCommerce
- upload_max_filesize = 64M — รองรับการอัปโหลดรูปภาพและไฟล์ขนาดใหญ่
- post_max_size = 64M — ต้องมากกว่าหรือเท่ากับ upload_max_filesize เสมอ
- memory_limit = 256M — WordPress แนะนำค่านี้เป็นอย่างน้อย
- max_execution_time = 120 — ป้องกัน timeout เมื่อ import ข้อมูลหรือรัน Backup
- max_input_vars = 3000 — สำคัญสำหรับเว็บที่มีเมนูขนาดใหญ่หรือฟอร์มที่มีหลายฟิลด์
- max_input_time = 120 — เวลาสูงสุดในการรับข้อมูล Input ก่อนที่ Script จะเริ่มทำงาน
วิธีสร้างไฟล์ .user.ini เพื่อ Override ค่า php.ini เฉพาะโดเมน: สร้างไฟล์ชื่อ .user.ini ใน public_html แล้วใส่ค่าที่ต้องการ เช่น upload_max_filesize = 64M ไฟล์นี้จะมีผลทันทีโดยไม่ต้อง Restart Server และจะ Override ค่า php.ini ของระบบเฉพาะโดเมนนั้น
การ Debug PHP Error ด้วย error_log และ display_errors
เมื่อเว็บไซต์เกิด Error ไม่ว่าจะเป็น White Screen of Death หรือ Fatal Error การ Debug ที่ถูกวิธีจะช่วยหาสาเหตุได้เร็วขึ้น DirectAdmin รองรับการตั้งค่า Debug ผ่าน php.ini หรือไฟล์ .user.ini
การเปิด Error Log บน Production Server
สำหรับ Production Server ไม่ควรแสดง Error บนหน้าเว็บโดยตรง แต่ควรบันทึกลง Log File แทน ใช้ค่าเหล่านี้ใน .user.ini:
display_errors = Off— ปิดการแสดง Error บนหน้าเว็บ ป้องกันข้อมูล Sensitive หลุดlog_errors = On— เปิดการบันทึก Error ลงไฟล์error_log = /home/username/logs/php_errors.log— กำหนด Path ที่จะบันทึก Errorerror_reporting = E_ALL— บันทึก Error ทุกประเภท รวมถึง Warning และ Notice
การเปิด Error บน Development/Staging
สำหรับ Environment ที่กำลัง Develop ให้เปิด display_errors = On และ display_startup_errors = On เพื่อเห็น Error ทันที หลังจากแก้ไขเสร็จให้ปิดก่อน Deploy ไป Production เสมอ สามารถดู Error Log ได้จาก DirectAdmin ที่เมนู Error Log หรือผ่าน File Manager เปิดไฟล์ Log โดยตรง
PHP Modes: mod_php, FastCGI และ PHP-FPM ต่างกันอย่างไร
DirectAdmin รองรับหลาย PHP Handler Mode ซึ่งแต่ละแบบมีผลต่อ Performance, Security และการใช้ Memory ที่แตกต่างกัน การเลือก Mode ที่เหมาะสมช่วยให้เว็บไซต์ทำงานได้เร็วขึ้นอย่างมีนัยสำคัญ
mod_php
mod_php ทำงานเป็นส่วนหนึ่งของ Apache Web Server โดยตรง ทุก Apache process จะมี PHP โหลดอยู่ในหน่วยความจำตลอดเวลา ข้อดีคือ Overhead ต่ำสำหรับเว็บขนาดเล็ก ข้อเสียคือ Memory ไม่ถูกคืนหลัง Request เสร็จ และทุกไฟล์รันในสิทธิ์ของ Apache User ซึ่งอาจเป็นปัญหาด้าน Security เมื่อมีหลายเว็บไซต์บนเซิร์ฟเวอร์เดียวกัน
FastCGI (CGI Mode)
FastCGI รัน PHP เป็น Process แยกจาก Web Server ทำให้แต่ละโดเมนสามารถใช้ PHP User ที่แตกต่างกันได้ ช่วยเพิ่ม Security โดยเฉพาะในสภาพแวดล้อม Shared Hosting ที่มีหลาย Account อยู่บนเซิร์ฟเวอร์เดียว Performance ดีกว่า mod_php ในสภาพแวดล้อมที่มี Concurrent Request สูง
PHP-FPM (FastCGI Process Manager)
PHP-FPM คือ FastCGI Implementation ที่พัฒนาต่อยอดมาพร้อม Process Pool Management ขั้นสูง สามารถกำหนดจำนวน Worker Process ได้ จัดการ Memory ได้ดีกว่า และรองรับ Graceful Reload โดยไม่ต้อง Restart Server ทั้งหมด เหมาะกับ Production Server ที่ต้องการ Performance สูงสุด AsiaGB ใช้ PHP-FPM เป็นค่าเริ่มต้นสำหรับ Hosting ทุกแพ็กเกจ เพราะให้ทั้ง Performance และ Security ที่ดีที่สุดในบรรดา Mode ทั้งหมด
Hosting รองรับ PHP 7.4, 8.2 และ 8.3
AsiaGB Hosting ให้คุณเปลี่ยน PHP Version ได้เองตลอดเวลา พร้อม SSL ฟรี, DirectAdmin และ Support ภาษาไทย
ดูแพ็กเกจ Hosting