Uji kemampuan Anda di semua layanan Hosting kami dan dapatkan diskon 15%!

Gunakan kode saat checkout:

Skills
23.06.2025
No categories

Manajer Proses PHP FastCGI – PHP-FPM

PHP adalah salah satu bahasa pemrograman yang paling banyak digunakan untuk pengembangan web. Dalam hal menangani lalu lintas dalam jumlah besar secara efisien, kinerja PHP dapat berdampak signifikan terhadap kecepatan dan daya tanggap situs web secara keseluruhan. Di sinilah PHP FastCGI Process Manager (PHP-FPM) berperan. PHP-FPM adalah alternatif penangan PHP yang diadopsi secara luas yang menyediakan metode berkinerja tinggi untuk mengeksekusi skrip PHP.

Pada artikel ini, kita akan membahas apa itu PHP-FPM, mengapa PHP-FPM sangat penting untuk mengoptimalkan kinerja server web, dan bagaimana cara mengonfigurasinya untuk aplikasi berbasis PHP Anda.

Apa itu PHP-FPM?

PHP-FPM, atau PHP FastCGI Process Manager, adalah sebuah implementasi FastCGI untuk skrip PHP. FastCGI adalah protokol yang digunakan untuk meningkatkan kinerja server web dengan menangani permintaan secara lebih efisien daripada CGI (Common Gateway Interface) standar. Sementara CGI membuat proses baru untuk setiap permintaan (yang menyebabkan konsumsi sumber daya yang tinggi), FastCGI menyimpan kumpulan proses pekerja yang siap untuk menangani banyak permintaan, sehingga mengurangi overhead.

PHP-FPM menambahkan lapisan manajemen proses di atas FastCGI, yang memungkinkan fitur-fitur seperti penyatuan proses, pemijahan pekerja sesuai permintaan, pematian secara perlahan, dan kemampuan untuk menangani lingkungan lalu lintas yang tinggi dengan mudah. Sekarang PHP-FPM menjadi standar penanganan PHP untuk banyak server web modern, termasuk NGINX dan Apache.

Mengapa Menggunakan PHP-FPM?

  1. Peningkatan Kinerja: PHP-FPM dapat menangani lebih banyak permintaan bersamaan dengan sumber daya yang lebih sedikit, mengurangi beban server dan mempercepat waktu respons. Hal ini sangat bermanfaat untuk situs web dengan lalu lintas tinggi atau aplikasi yang mengalami lonjakan lalu lintas secara tiba-tiba.
  2. Manajemen Proses: PHP-FPM memungkinkan manajemen proses yang disesuaikan dengan baik, memberi Anda kendali atas bagaimana PHP menangani permintaan. PHP-FPM menggunakan sekumpulan pekerja yang dapat disesuaikan agar sesuai dengan beban kerja yang diharapkan, memastikan penggunaan sumber daya server yang efisien.
  3. Pemanfaatan Sumber Daya yang Lebih Baik: Karena PHP-FPM mengumpulkan proses, PHP dapat melayani banyak permintaan menggunakan pekerja yang sama, meminimalkan kebutuhan untuk membuat dan menghentikan proses secara terus menerus. Hal ini meningkatkan penggunaan memori dan efisiensi CPU.
  4. Degradasi yang Anggun: Ketika dikonfigurasi dengan benar, PHP-FPM dapat melakukan degradasi dengan baik dengan mengurangi jumlah proses yang aktif jika server menjadi kewalahan, sehingga mencegah kerusakan total.
  5. Fitur-fitur Canggih: PHP-FPM menyertakan fitur-fitur canggih seperti slow-log untuk debugging, pemijahan proses adaptif, dan pelaporan status, yang memberikan wawasan tentang kinerja dan kesehatan aplikasi PHP Anda.

Fitur Utama PHP-FPM

  • Kumpulan Proses: PHP-FPM memungkinkan Anda untuk mendefinisikan beberapa kumpulan proses pekerja PHP. Setiap pool dapat dikonfigurasi dengan pengaturan yang berbeda, sehingga Anda dapat menjalankan aplikasi PHP yang berbeda dengan kebutuhan lalu lintas yang berbeda-beda pada server yang sama.
  • Pemijahan Proses Adaptif: PHP-FPM dapat secara otomatis menskalakan jumlah proses pekerja berdasarkan tingkat lalu lintas. Dimulai dengan jumlah pekerja minimum dan dapat meningkatkan ukuran pool saat dibutuhkan, tanpa membuang sumber daya selama periode lalu lintas rendah.
  • Log Lambat: Fitur slow log di PHP-FPM mencatat permintaan yang melebihi waktu eksekusi yang telah ditentukan. Hal ini membantu pengembang mengidentifikasi dan menyelesaikan hambatan kinerja dalam kode PHP mereka.
  • Halaman Status: PHP-FPM menyediakan halaman status bawaan yang memberikan informasi real-time tentang status pool, pekerja aktif, pekerja menganggur, dan metrik lain yang dapat digunakan untuk memantau kinerja.
  • Pematian yang Anggun: PHP-FPM dapat menghentikan proses dengan lembut, memungkinkan permintaan yang sedang berjalan untuk diselesaikan sebelum dimatikan. Hal ini mencegah penghentian skrip yang sedang berjalan secara tiba-tiba, memastikan pengalaman pengguna yang lebih baik.

Cara Kerja PHP-FPM

PHP-FPM beroperasi sebagai server FastCGI mandiri yang terintegrasi dengan server web, seperti NGINX atau Apache, untuk melayani skrip PHP. Ketika sebuah permintaan masuk, server web meneruskan permintaan PHP ke layanan PHP-FPM, yang mengelola sekumpulan proses pekerja untuk mengeksekusi kode PHP dan mengirimkan hasilnya kembali ke server web untuk dikirimkan ke klien.

Berikut ini adalah alur yang disederhanakan tentang bagaimana PHP-FPM menangani permintaan:

  1. Permintaan Klien: Seorang pengguna meminta sebuah halaman web yang berisi kode PHP.
  2. Server Web Menerima Permintaan: Server web (NGINX atau Apache) menerima permintaan dan meneruskannya ke layanan PHP-FPM menggunakan protokol FastCGI.
  3. Pekerja PHP-FPM Memproses Permintaan: Salah satu proses pekerja dalam kumpulan PHP-FPM menangani permintaan, mengeksekusi skrip PHP, dan mengembalikan hasilnya.
  4. Respons Dikirim Kembali: Server web menerima keluaran dan mengirimkannya kembali ke klien sebagai HTML yang dirender.

Menyiapkan dan Mengonfigurasi PHP-FPM

Langkah 1: Menginstalasi PHP-FPM

Untuk sebagian besar distribusi Linux, PHP-FPM dapat diinstal melalui manajer paket. Berikut adalah perintah untuk sistem yang umum:

# For Debian/Ubuntu
sudo apt update
sudo apt install php-fpm
# For CentOS/RHEL
sudo yum install php-fpm

Setelah terinstal, Anda dapat memulai layanan PHP-FPM:

sudo systemctl start php-fpm

Langkah 2: Mengonfigurasi Kumpulan PHP-FPM

File konfigurasi utama untuk PHP-FPM biasanya terletak di /etc/php/7.x/fpm/pool.d/ atau /etc/php-fpm.d/ , tergantung pada distribusi dan versi PHP Anda. Setiap pool didefinisikan dalam berkas tersendiri, biasanya diberi nama sesuai dengan nama situs web atau aplikasi yang dilayaninya. Berikut ini adalah contoh konfigurasi untuk sebuah pool:

[www]
pengguna = www-data
group = www-data
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dinamis
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500

  • pm = dinamis: Manajer proses dapat secara dinamis menyesuaikan jumlah proses pekerja berdasarkan permintaan.
  • pm.max_children: Jumlah maksimum proses pekerja yang dapat dimunculkan untuk menangani permintaan.
  • pm.start_servers: Jumlah proses pekerja yang dimulai ketika PHP-FPM diluncurkan.
  • pm.min_spare_servers dan pm.max_spare_servers: Menentukan jumlah minimum dan maksimum pekerja yang menganggur, yang memungkinkan PHP-FPM untuk menskalakan sumber daya berdasarkan beban.
  • pm.max_requests: Jumlah maksimum permintaan yang dapat ditangani oleh sebuah worker sebelum dihentikan dan diganti. Hal ini membantu mencegah kebocoran memori pada skrip yang berjalan lama.

Langkah 3: Mengonfigurasi Server Web untuk Menggunakan PHP-FPM

Untuk NGINX:

Pada berkas konfigurasi NGINX Anda (misalnya, /etc/nginx/sites-available/example.com), siapkan PHP-FPM sebagai pengendali PHP:

server {
listen 80;
server_name example.com;
root /var/www/html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}

Untuk Apache:

Untuk mengaktifkan PHP-FPM pada Apache, pastikan modul mod_proxy_fcgi telah diaktifkan:

sudo a2enmod proxy_fcgi setenvif

Kemudian perbarui konfigurasi hos virtual Apache Anda:


ServerName example.com
DocumentRoot /var/www/html

SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost/"

Langkah 4: Menguji Konfigurasi

Setelah mengonfigurasi PHP-FPM dan server web Anda, mulai ulang layanan untuk menerapkan perubahan:

# For NGINX
sudo systemctl restart nginx

# For Apache
sudo systemctl restart apache2

Untuk memverifikasi bahwa PHP-FPM berfungsi, buat berkas phpinfo.php di direktori root web Anda:

?php
phpinfo();
?>

Kunjungi berkas tersebut di peramban Anda (misalnya, http://example.com/phpinfo.php) untuk melihat apakah PHP-FPM terdaftar sebagai penanganannya.

Kesimpulan

PHP-FPM adalah alat yang penting untuk mengoptimalkan kinerja PHP, terutama untuk situs web dengan lalu lintas tinggi. Alat ini memberikan manfaat yang signifikan dibandingkan dengan penangan PHP tradisional dengan mengelola proses secara efisien, meningkatkan pemanfaatan sumber daya server, dan menawarkan fitur-fitur canggih seperti penskalaan proses adaptif dan pencatatan yang lambat. Dengan mengonfigurasi PHP-FPM untuk memenuhi kebutuhan spesifik Anda, Anda dapat memastikan bahwa aplikasi PHP Anda berjalan dengan lancar dan efisien, bahkan di bawah beban yang berat.

Dengan mengikuti langkah-langkah dalam panduan ini, Anda seharusnya sudah siap untuk menyiapkan dan mengoptimalkan PHP-FPM untuk proyek berbasis PHP Anda.

Uji kemampuan Anda di semua layanan Hosting kami dan dapatkan diskon 15%!

Gunakan kode saat checkout:

Skills

Похожие записи не найдены.