การติดตั้ง PHP 8.4 (CLI) ร่วมกับ PHP 8.4-FPM บน Apache Web Server สำหรับ Ubuntu Server 24.04 สำหรับงาน Production

การติดตั้ง PHP 8.4 (CLI) ร่วมกับ PHP 8.4-FPM บน Apache Web Server สำหรับ Ubuntu Server 24.04 สำหรับงาน Production

PHP 8.4 เป็นเวอร์ชันใหม่ที่มาพร้อมประสิทธิภาพที่เพิ่มขึ้น ความสามารถของภาษาเพิ่มเติม และปรับปรุงระบบจัดการทรัพยากร ทำให้เหมาะสำหรับการใช้งานทั้งแบบพัฒนาและระบบจริงบนเซิร์ฟเวอร์ Ubuntu 24.04 LTS การใช้งาน PHP ในลักษณะ PHP CLI สำหรับรันคำสั่ง/สคริปต์ในระบบ และ PHP-FPM สำหรับประมวลผลเว็บผ่าน Apache เป็นแนวทางที่ได้รับความนิยมอย่างกว้างขวาง เนื่องจากช่วยเพิ่มประสิทธิภาพ ความเสถียร และความง่ายในการบริหารจัดการ

บทความนี้อธิบายขั้นตอนการติดตั้ง PHP 8.4 (CLI) ร่วมกับ PHP 8.4-FPM ให้ทำงานร่วมกับ Apache Web Server บน Ubuntu Server 24.04 พร้อมแนวทางปรับแต่งเพื่อใช้งานจริงในองค์กร เหมาะสำหรับผู้ดูแลระบบที่ต้องการติดตั้งใช้งานจริง สำหรับใช้แอพพลิเคชันยอดนิยม เช่น WordPress, Joomla!, Drupal, Moodle, OJS หรือเฟรมเวิร์คอย่าง Laravel และแพลตฟอร์มที่พัฒนามาจากภาษา PHP


1. อัปเดตระบบให้เป็นเวอร์ชันล่าสุด

sudo apt update
sudo apt upgrade -y

2. เพิ่มคลัง PPA ของ PHP 8.4

Ubuntu 24.04 ยังไม่มี PHP 8.4 ใน repository หลัก จึงต้องเพิ่มคลัง PPA ของ Ondrej ซึ่งได้รับความนิยมและเชื่อถือได้

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

3. ติดตั้ง PHP 8.4 (CLI)

PHP CLI เป็นสิ่งจำเป็นสำหรับการรันสคริปต์ เช่น Composer, Artisan หรือ Cron Jobs

sudo apt install php8.4 php8.4-cli php8.4-common -y

ตรวจสอบเวอร์ชัน

php -v
 

4. ติดตั้ง PHP 8.4-FPM และโมดูลที่จำเป็น

PHP-FPM ใช้สำหรับประมวลผลคำสั่ง PHP ที่ร้องขอผ่าน Apache โดยให้ประสิทธิภาพสูงกว่า mod_php

sudo apt install php8.4-fpm php8.4-mysql php8.4-xml php8.4-curl php8.4-gd php8.4-mbstring php8.4-zip php8.4-bcmath php8.4-intl php8.4-opcache -y

ตรวจสอบสถานะ FPM

systemctl status php8.4-fpm

เปิดใช้บริการอัตโนมัติ

sudo systemctl enable php8.4-fpm


5. ตั้งค่า Apache ให้ทำงานร่วมกับ PHP-FPM

Apache จะประมวลผลไฟล์ PHP ผ่าน FastCGI ด้วยโมดูล proxy_fcgi

เปิดโมดูลที่จำเป็น

sudo a2enmod proxy_fcgi setenvif
sudo a2enmod actions fastcgi alias

เปิดใช้งานคอนฟิก PHP-FPM

sudo a2enconf php8.4-fpm
sudo systemctl reload apache2

6. ตรวจสอบ Socket ของ PHP-FPM

ls -l /run/php/

ผลลัพธ์

php8.4-fpm.sock
 

7. ตัวอย่าง Virtual Host สำหรับ PHP-FPM

ไฟล์ตัวอย่าง

/etc/apache2/sites-available/example.conf

<VirtualHost *:80>
   ServerName example.com
   DocumentRoot /var/www/example

<Directory /var/www/example>
   AllowOverride All
   Require all granted
</Directory>

<FilesMatch "\.php$">
   SetHandler "proxy:unix:/run/php/php8.4-fpm.sock|fcgi://localhost/"
</FilesMatch>

ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>

เปิดใช้งาน vHost

sudo a2ensite example.conf
sudo systemctl reload apache2

8. ทดสอบการทำงานของ PHP-FPM

สร้างไฟล์ทดสอบ

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

ทดสอบผ่านเว็บ

http://SERVER_IP/info.php

ลบไฟล์เมื่อทดสอบเสร็จ

sudo rm /var/www/html/info.php

9. ปรับแต่งค่า PHP-FPM (แนะนำสำหรับงาน Production)

– แก้ไขค่าใน Pool

sudo nano /etc/php/8.4/fpm/pool.d/www.conf

– ตัวอย่างค่าที่เหมาะสม

pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10

– Reload FPM

sudo systemctl reload php8.4-fpm

10. ความสัมพันธ์ระหว่าง PHP CLI และ PHP-FPM

  • PHP CLI ทำงานผ่านคำสั่ง php ใน Shell

  • PHP-FPM ทำงานเป็น Service สำหรับ Apache ผ่าน Socket

  • ทั้งสอง ใช้ร่วมกันได้อย่างสมบูรณ์แบบ บนเครื่องเดียวกัน

  • สามารถมี PHP extensions และค่า php.ini แยกกันได้ เช่น

    • /etc/php/8.4/cli/php.ini

    • /etc/php/8.4/fpm/php.ini

แนวทางนี้เหมาะอย่างยิ่งสำหรับ

  • ระบบเว็บที่มีผู้ใช้งานจำนวนมาก

  • WordPress, Drupal, Joomla!, Moodel, OJS, Laravel

  • ระบบงานที่ต้องรัน Cron Jobs ควบคู่ไปกับเว็บเซิร์ฟเวอร์


สรุป

การใช้งาน PHP 8.4 (CLI) ร่วมกับ PHP 8.4-FPM บน Apache Web Server บน Ubuntu Server 24.04 เป็นโครงสร้างที่ให้ความยืดหยุ่นสูง เหมาะสำหรับงาน Production ที่ต้องการเสถียรภาพและประสิทธิภาพ ด้วยการแยกบทบาท CLI และ FPM ทำให้เซิร์ฟเวอร์รองรับโหลดจำนวนมากได้ดีขึ้น พร้อมทั้งจัดการการประมวลผล PHP ได้มีประสิทธิภาพกว่าแบบ mod_php อย่างชัดเจน

เมื่อดำเนินการติดตั้งและปรับแต่งตามขั้นตอนในบทความนี้ ผู้ดูแลระบบจะได้สภาพแวดล้อมการทำงานที่พร้อมสำหรับการพัฒนา การทดสอบ และการใช้งานจริงในระดับองค์กร ทั้งนี้สามารถศึกษาเทคนิคเพิ่มเติมในเว็บ Google, ChatGPT หรือในกลุ่ม Community ของ Linux Server  โชคดีครับ 🙂


เขียนและรวบรวมโดย
Dr.Arnut Ruttanatirakul
Technology Lecturer, KMITL
20 October 2025