กลับไปหน้าบล็อก
มกราคม 13, 2026คู่มือ

วิธีกำหนดค่า PHP-FPM เพื่อประสิทธิภาพสูงสุด

คู่มือฉบับสมบูรณ์เกี่ยวกับการกำหนดค่าการตั้งค่า pool ของ PHP-FPM การปรับแต่งประสิทธิภาพ และการรวมเข้ากับ Nginx

วิธีกำหนดค่า PHP-FPM เพื่อประสิทธิภาพสูงสุด

PHP-FPM (FastCGI Process Manager) เป็นการใช้งาน PHP FastCGI ทางเลือกพร้อมคุณสมบัติเพิ่มเติมที่มีประโยชน์สำหรับเว็บไซต์ที่มีทราฟฟิกสูง การกำหนดค่าที่เหมาะสมสามารถปรับปรุงประสิทธิภาพของเซิร์ฟเวอร์และการใช้ทรัพยากรของคุณได้อย่างมาก

การติดตั้ง PHP-FPM

bash
# Ubuntu/Debian
sudo apt update
sudo apt install php-fpm php-mysql php-mbstring php-xml php-curl -y

# CentOS/RHEL
sudo yum install php-fpm php-mysql php-mbstring php-xml php-curl -y

# เริ่มและเปิดใช้งาน PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

การกำหนดค่า PHP-FPM Pool

แก้ไขไฟล์กำหนดค่า pool เพื่อเพิ่มประสิทธิภาพ:

bash
sudo nano /etc/php/8.1/fpm/pool.d/www.conf

# การตั้งค่าที่สำคัญ:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# การจัดการกระบวนการ
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

การปรับแต่งประสิทธิภาพ

เพิ่มประสิทธิภาพ PHP-FPM สำหรับทรัพยากรของเซิร์ฟเวอร์ของคุณ:

bash
# คำนวณ max_children ที่เหมาะสมที่สุด:
# (RAM ทั้งหมด - บริการอื่น) / (หน่วยความจำต่อกระบวนการ PHP)
# ตัวอย่าง: (2GB - 500MB) / 50MB = 30 max_children

# แก้ไข php.ini เพื่อประสิทธิภาพที่ดีขึ้น
sudo nano /etc/php/8.1/fpm/php.ini

# การตั้งค่าที่แนะนำ:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# รีสตาร์ท PHP-FPM
sudo systemctl restart php-fpm

การกำหนดค่า Nginx

กำหนดค่า Nginx ให้ทำงานกับ PHP-FPM:

bash
sudo nano /etc/nginx/sites-available/yourdomain.com

# เพิ่มการจัดการ PHP:
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

# ทดสอบและโหลด Nginx ใหม่
sudo nginx -t
sudo systemctl reload nginx

การตรวจสอบ PHP-FPM

bash
# ตรวจสอบสถานะ PHP-FPM
sudo systemctl status php-fpm

# ดูกระบวนการ PHP-FPM
ps aux | grep php-fpm

# ตรวจสอบสถานะ pool (หากเปิดหน้าสถานะ)
curl http://localhost/status

# ดูบันทึก
sudo tail -f /var/log/php8.1-fpm.log

เคล็ดลับการเพิ่มประสิทธิภาพ PHP-FPM

  • ปรับ pm.max_children ตาม RAM ที่มีอยู่
  • ใช้ pm = dynamic สำหรับกรณีการใช้งานส่วนใหญ่
  • ตั้งค่า pm.max_requests เพื่อป้องกันหน่วยความจำรั่วไหล
  • เปิดใช้งาน opcache เพื่อประสิทธิภาพที่ดีขึ้น
  • ตรวจสอบสถานะ PHP-FPM เป็นประจำ
  • ใช้ pool แยกต่างหากสำหรับแอปพลิเคชันต่างๆ
  • อัปเดต PHP และ PHP-FPM อยู่เสมอ