DriteStudioDRITESTUDIODRITESTUDIO
首页文章关于我们联系我们
首页
VPS 云服务器高性能虚拟服务器,提供完整 Root 权限
VPS 外汇交易超低延迟 VPS,专为外汇和自动交易优化
虚拟主机附带 Plesk 和免费 SSL 的虚拟主机
游戏服务器托管支持全球 20+ 款游戏。您可以租用 VPS,并告知我们想要部署的游戏。
独立服务器企业级硬件,支持 IPMI 远程管理
托管服务安全的数据中心机柜空间
安全服务WAF、DDoS 防护与 24/7 SOC 监控
网站开发使用现代框架定制网站设计与开发
SEO 服务通过文章、外链和技术 SEO 提升排名
状态查看系统运行状态和服务可用性
文章关于我们联系我们
0%
วิธีใช้ PHP หลายเวอร์ชันกับ Nginx บน Ubuntu ครบทุกขั้นตอน [2026]
返回文章列表

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

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

Linux-August 28, 2023-更新: April 16, 2026

ทำไมต้องรัน 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、虚拟主机与服务器托管服务的泰国数字基础设施服务商

由 Craft Intertech (Thailand) Co., Ltd. 运营

© 2026 Craft Intertech (Thailand) Co., Ltd. 保留所有权利。

隐私政策服务条款系统状态