Bumalik sa blog
Enero 13, 2026Mga Gabay

Paano I-configure ang PHP-FPM para sa Optimal na Performance

Kumpletong gabay sa pag-configure ng mga setting ng pool ng PHP-FPM, pag-tune ng performance, at pagsasama sa Nginx.

Paano I-configure ang PHP-FPM para sa Optimal na Performance

Ang PHP-FPM (FastCGI Process Manager) ay isang alternatibong pagpapatupad ng PHP FastCGI na may mga karagdagang tampok na kapaki-pakinabang para sa mga website na may mataas na trapiko. Ang wastong configuration ay maaaring makabuluhang mapabuti ang performance ng iyong server at paggamit ng resource.

Pag-install ng 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

# Simulan at paganahin ang PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Pag-configure ng PHP-FPM Pool

I-edit ang pool configuration file upang i-optimize ang performance:

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

# Mga pangunahing setting:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# Pamamahala ng proseso
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Pag-tune ng Performance

I-optimize ang PHP-FPM para sa mga resource ng iyong server:

bash
# Kalkulahin ang optimal na max_children:
# (Kabuuang RAM - Iba pang mga serbisyo) / (Memory bawat proseso ng PHP)
# Halimbawa: (2GB - 500MB) / 50MB = 30 max_children

# I-edit ang php.ini para sa mas mahusay na performance
sudo nano /etc/php/8.1/fpm/php.ini

# Mga inirerekomendang setting:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# I-restart ang PHP-FPM
sudo systemctl restart php-fpm

Configuration ng Nginx

I-configure ang Nginx upang gumana sa PHP-FPM:

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

# Magdagdag ng paghawak ng 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;
}

# Subukan at i-reload ang Nginx
sudo nginx -t
sudo systemctl reload nginx

Pagsubaybay sa PHP-FPM

bash
# Suriin ang status ng PHP-FPM
sudo systemctl status php-fpm

# Tingnan ang mga proseso ng PHP-FPM
ps aux | grep php-fpm

# Suriin ang status ng pool (kung naka-enable ang status page)
curl http://localhost/status

# Tingnan ang mga log
sudo tail -f /var/log/php8.1-fpm.log

Mga Tip sa Pag-optimize ng PHP-FPM

  • Ayusin ang pm.max_children batay sa available na RAM
  • Gumamit ng pm = dynamic para sa karamihan ng mga kaso ng paggamit
  • Itakda ang pm.max_requests para maiwasan ang memory leaks
  • Paganahin ang opcache para sa mas mahusay na performance
  • Regular na subaybayan ang status ng PHP-FPM
  • Gumamit ng magkakahiwalay na pool para sa iba't ibang application
  • Panatilihing updated ang PHP at PHP-FPM