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.

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-fpmMengonfigurasi 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 = 500Penyetelan 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-fpmKonfigurasi 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 nginxMemantau 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.logTips 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