Kembali ke blog
Januari 13, 2026Panduan

Cara Mengonfigurasi PHP-FPM untuk Kinerja Optimal

Panduan lengkap tentang cara mengonfigurasi pengaturan pool PHP-FPM, penyetelan kinerja, dan integrasi dengan Nginx.

Cara Mengonfigurasi PHP-FPM untuk Kinerja Optimal

PHP-FPM (FastCGI Process Manager) adalah implementasi PHP FastCGI alternatif dengan fitur tambahan yang berguna untuk situs web dengan lalu lintas tinggi. Konfigurasi yang tepat dapat secara signifikan meningkatkan kinerja server dan pemanfaatan sumber daya Anda.

Menginstal 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

# Mulai dan aktifkan PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Mengonfigurasi Pool PHP-FPM

Edit file konfigurasi pool untuk mengoptimalkan kinerja:

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

# Pengaturan utama:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# Manajemen proses
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Penyetelan Kinerja

Optimalkan PHP-FPM untuk sumber daya server Anda:

bash
# Hitung max_children optimal:
# (Total RAM - Layanan lain) / (Memori per proses PHP)
# Contoh: (2GB - 500MB) / 50MB = 30 max_children

# Edit php.ini untuk kinerja yang lebih baik
sudo nano /etc/php/8.1/fpm/php.ini

# Pengaturan yang disarankan:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# Mulai ulang PHP-FPM
sudo systemctl restart php-fpm

Konfigurasi Nginx

Konfigurasikan Nginx untuk bekerja dengan PHP-FPM:

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

# Tambahkan penanganan 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;
}

# Uji dan muat ulang Nginx
sudo nginx -t
sudo systemctl reload nginx

Memantau PHP-FPM

bash
# Periksa status PHP-FPM
sudo systemctl status php-fpm

# Lihat proses PHP-FPM
ps aux | grep php-fpm

# Periksa status pool (jika halaman status diaktifkan)
curl http://localhost/status

# Lihat log
sudo tail -f /var/log/php8.1-fpm.log

Tips Optimasi PHP-FPM

  • Sesuaikan pm.max_children berdasarkan RAM yang tersedia
  • Gunakan pm = dynamic untuk sebagian besar kasus penggunaan
  • Atur pm.max_requests untuk mencegah kebocoran memori
  • Aktifkan opcache untuk kinerja yang lebih baik
  • Pantau status PHP-FPM secara teratur
  • Gunakan pool terpisah untuk aplikasi yang berbeda
  • Perbarui PHP dan PHP-FPM