DriteStudioDRITESTUDIODRITESTUDIO
หน้าแรกบทความเกี่ยวกับเราติดต่อเรา
หน้าแรก
VPSเซิร์ฟเวอร์เสมือนประสิทธิภาพสูง พร้อมสิทธิ์ Root เต็มรูปแบบ
VPS ForexVPS เทรด Forex หน่วงต่ำพิเศษ สำหรับ EA และระบบเทรดอัตโนมัติ
เว็บโฮสติ้งโฮสติ้งพร้อมใช้งาน มี Plesk และ SSL ฟรี
โฮสติ้งเกมเซิร์ฟเวอร์รองรับเกมมากกว่า 20 เกมทั่วโลก เพียงเช่า VPS แล้วแจ้งเกมที่ต้องการติดตั้งกับเรา
เซิร์ฟเวอร์เฉพาะเซิร์ฟเวอร์เฉพาะระดับองค์กร พร้อม IPMI
ฝากวางเซิร์ฟเวอร์ฝากเซิร์ฟเวอร์ในศูนย์ข้อมูลมาตรฐานสากล
ความปลอดภัยWAF ระบบป้องกัน DDoS และ SOC เฝ้าระวังตลอด 24/7
รับทำเว็บไซต์ออกแบบและพัฒนาเว็บไซต์ด้วยเทคโนโลยีสมัยใหม่
บริการ SEOดันอันดับด้วยบทความ Backlink และ Technical SEO
สถานะระบบตรวจสอบสถานะระบบและความพร้อมใช้งาน
บทความเกี่ยวกับเราติดต่อเรา
0%
วิธีใช้ PHP หลายเวอร์ชันกับ Nginx บน Ubuntu ครบทุกขั้นตอน [2026]
กลับหน้ารายการบทความ

วิธีใช้ PHP หลายเวอร์ชันกับ Nginx บน Ubuntu ครบทุกขั้นตอน [2026]

วิธีใช้ PHP หลายเวอร์ชันกับ Nginx บน Ubuntu ตั้งค่า PHP-FPM pool แยกตาม site

Linux-28 สิงหาคม 2566-อัปเดต: 16 เมษายน 2569

ทำไมต้องรัน PHP หลายเวอร์ชันพร้อมกันบนเซิร์ฟเวอร์เดียว

ในการทำงานจริง เรามักมีเว็บไซต์หลายตัวบนเซิร์ฟเวอร์เดียวกัน แต่ละเว็บต้องการ PHP คนละ Version เช่น WordPress เก่าอาจต้องการ PHP 7.4 ในขณะที่ Laravel ตัวใหม่ต้องใช้ PHP 8.2 ขึ้นไป Nginx ไม่มี PHP Module ในตัวเหมือน Apache แต่ใช้ PHP-FPM (FastCGI Process Manager) แทน ข้อดีคือรัน PHP-FPM หลาย Version พร้อมกันได้

บทความนี้จะพาคุณตั้งค่า PHP หลายเวอร์ชันกับ Nginx บน Ubuntu ตั้งแต่ติดตั้งจนถึงแยก Pool สำหรับแต่ละ Site

ติดตั้ง PHP หลายเวอร์ชันบน Ubuntu

เพิ่ม PPA Repository

Ubuntu ไม่ได้มี PHP ทุก Version ใน Official Repo ต้องเพิ่ม PPA ของ Ondrej Sury

sudo apt update
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

ติดตั้ง PHP แต่ละเวอร์ชัน

sudo apt install php7.4-fpm php7.4-mysql php7.4-xml php7.4-mbstring php7.4-curl -y
sudo apt install php8.2-fpm php8.2-mysql php8.2-xml php8.2-mbstring php8.2-curl -y
sudo apt install php8.3-fpm php8.3-mysql php8.3-xml php8.3-mbstring php8.3-curl -y

เพิ่ม Extension ตามที่ Application ต้องการ เช่น php8.2-gd, php8.2-zip, php8.2-intl ตรวจสอบว่า PHP-FPM ทำงานด้วย sudo systemctl status php8.3-fpm

ตั้งค่า Nginx กับ PHP-FPM แต่ละเวอร์ชัน

Nginx ส่ง PHP Request ผ่าน FastCGI ไปยัง PHP-FPM Socket ที่กำหนดในแต่ละ Site โดย Socket อยู่ที่ /run/php/phpX.X-fpm.sock

Config สำหรับ Site ที่ใช้ PHP 7.4

server {
    listen 80;
    server_name legacy-app.example.com;
    root /var/www/legacy-app;
    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

Config สำหรับ Site ที่ใช้ PHP 8.3

server {
    listen 80;
    server_name new-app.example.com;
    root /var/www/new-app;
    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
}

ความแตกต่างอยู่ที่บรรทัด fastcgi_pass เท่านั้น เปลี่ยน Socket Path ตาม PHP Version

เปิด Site และ Test Config

sudo ln -s /etc/nginx/sites-available/legacy-app /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/new-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

แยก PHP-FPM Pool สำหรับ Production

สำหรับ Production ที่ต้องการแยก Resource ให้แต่ละ Site ไม่กระทบกัน สร้าง PHP-FPM Pool แยกที่ /etc/php/8.3/fpm/pool.d/new-app.conf

กำหนด user, listen socket แยก และปรับ pm.max_children ตาม Traffic ของแต่ละ Site แล้วแก้ Nginx Config ให้ชี้ไปที่ Socket ของ Pool ใหม่

ข้อดีของการแยก Pool คือจำกัด Resource ได้ แยก User เพิ่มความปลอดภัย และปรับ pm.max_children ตาม Traffic ได้อิสระ

เปลี่ยน Default PHP Version

ถ้าต้องการเปลี่ยน PHP Version สำหรับ Command Line

sudo update-alternatives --set php /usr/bin/php8.3
php -v

วิธีนี้ไม่กระทบ PHP-FPM ที่รันอยู่ เปลี่ยนแค่ CLI Version เท่านั้น

ทดสอบว่าทำงานถูกต้อง

สร้างไฟล์ phpinfo ใน Document Root ของแต่ละ Site เปิด Browser ดูว่า PHP Version ตรงกับที่ตั้งค่า อย่าลืมลบไฟล์ phpinfo หลังทดสอบเสร็จเพราะเปิดเผยข้อมูลเซิร์ฟเวอร์ที่อาจเป็นช่องโหว่

คำถามที่พบบ่อย (FAQ)

ติดตั้ง PHP หลายเวอร์ชันจะกิน RAM เยอะไหม

แต่ละ PHP-FPM Process กิน RAM ประมาณ 20-50MB ถ้ามีหลาย Version พร้อมกัน ควรปรับ pm.max_children ให้เหมาะกับ RAM ที่มี เพื่อไม่ให้ใช้ RAM เกินจน Swap

เปลี่ยน PHP Version ของ Site ที่มีอยู่แล้วทำอย่างไร

แก้ fastcgi_pass ใน Nginx Config ให้ชี้ไปที่ PHP-FPM Socket Version ใหม่ แล้ว sudo systemctl reload nginx ก่อนเปลี่ยนควรทดสอบ Application กับ PHP Version ใหม่บน Staging ก่อน

PHP-FPM Pool แบบ Static กับ Dynamic ต่างกันอย่างไร

Static จะรัน Process ตามจำนวนที่กำหนดตลอดเวลา เหมาะกับ Traffic สม่ำเสมอ Dynamic จะปรับจำนวน Process ตาม Load เหมาะกับ Traffic ที่ขึ้นลงไม่แน่นอน สำหรับส่วนใหญ่แนะนำ Dynamic

รองรับ PHP 8.4 หรือ Version ใหม่กว่าได้ไหม

ได้ เมื่อ PPA ของ Ondrej Sury อัปเดต PHP Version ใหม่ สามารถติดตั้งเพิ่มได้ทันที โดยไม่กระทบ Version เก่าที่รันอยู่

สรุป

การรัน PHP หลาย Version บน Nginx ด้วย PHP-FPM เป็นวิธีที่ยืดหยุ่นและมีประสิทธิภาพ เหมาะกับเซิร์ฟเวอร์ที่ Host หลาย Site จัดการ Pool ให้ดีและ Monitor Resource อย่างสม่ำเสมอ

สำหรับผู้ที่ต้องการเซิร์ฟเวอร์สำหรับ Host PHP Application หลายตัว VPS ของ DriteStudio ให้ Root Access เต็มรูปแบบ ติดตั้ง PHP กี่ Version ก็ได้ หรือถ้าต้องการ Managed Hosting Hosting จาก DriteStudio รองรับ PHP หลาย Version พร้อมใช้งานทันที

แชร์บทความ:
ดูบทความเพิ่มเติม
D

DriteStudio | ไดรท์สตูดิโอ

ผู้ให้บริการโครงสร้างพื้นฐานดิจิทัลสำหรับ VPS เว็บโฮสติ้ง และบริการฝากวางเซิร์ฟเวอร์ในประเทศไทย

ดำเนินการโดย บริษัท คราฟต์ อินเตอร์เทค (ประเทศไทย) จำกัด

© 2026 บริษัท คราฟต์ อินเตอร์เทค (ประเทศไทย) จำกัด สงวนลิขสิทธิ์

นโยบายความเป็นส่วนตัวข้อกำหนดการให้บริการสถานะระบบ