Konfigurasi NGINX Dengan MOD PHP PHP-FPM di Linux Debian Ubuntu
Nginx adalah server web HTTP yang paling banyak disukai oleh komunitas DevOps. Ketika menggunakan server web NGINX, para pengembang sering menggunakan pemrograman PHP karena memungkinkan mereka membangun dan menerapkan situs web interaktif dengan cepat.
Nginx adalah perangkat lunak sumber terbuka dan gratis yang dapat dikustomisasi menggunakan modul PHP PHP-FPM dan meningkatkan pemuatan situs serta menangani lalu lintas padat dalam jumlah besar.
Karena itu, tidak heran jika begitu banyak sistem administrator yang menginstall dan mengkonfigurasi Nginx, PHP, dan PHP-FPM di server Linux dan Windows. Menyiapkan modul PHP PHP-FPM dengan Nginx di Debian atau Ubuntu adalah proses yang sangat sederhana dan mudah.
Tutorial singkat ini menunjukkan cara menyiapkan modul PHP dan Nginx di Debian 13 Trixie dengan FastCGI process manager (PHP-FPM) yang dikonfigurasi sebagai mesin PHP Nginx.
Mengaktifkan MOD PHP di NGINX
PHP adalah bahasa skrip tertanam HTML sisi server dan dapat berjalan di berbagai sistem operasi. PHP pada awalnya hanya pengolah buku tamu yang sederhana, dan terus berkembang, sejak Versi 3 PHP adalah bahasa Pengembangan Web yang sangat kuat.
Penerapan modul PHP untuk server web NGINX dapat menangani semua permintaan PHP tanpa menggunakan modul pihak ketiga. Pada artikel ini kita asumsikan anda telah mengisntal dan mengaktifkan NGINX di server Debian.
Jadi, kita langsung saja dengan mengaktifkan modul PHP agar dapat diintegrasikan dengan NGINX. Cara mengaktifkan modul PHP di NGINX sangat mudah, anda cukup menginstal modul tersebut.
root@doh:~# apt-get install php php8.4 apache2-bin libapache2-mod-php8.4 php-cli php8.4-cli php8.4-mysql php8.4-xml php8.4-curl php8.4-mbstring php8.4-zip php8.4-gd
Sebagian besar tumpukan web Debian berhenti di HTML statis hingga PHP terpasang. Anda dapat menginstal PHP di Debian dari sumber paket APT default dan menginstall-nya dengan NGINX.
Rilis menentukan cabang yang Anda dapatkan:
- Debian 13 (Trixie) menginstal PHP 8.4,
- Debian 12 (Bookworm) menginstal PHP 8.2,
- dan Debian 11 (Bullseye) menginstal PHP 7.4.
Paket generik php, php-fpm dan php-cli mengikuti cabang default tersebut secara otomatis. Alur paket default yang sama mencakup Apache mod_php, Apache dengan PHP-FPM, Nginx dengan PHP-FPM.
Samapai sini anda telah berhasil mengaktifkan modul PHP di NGINX. Jika anda belum yakin, dapat memeriksa versi PHP yang telah teinstall.
root@doh:~# php --version PHP 8.4.24 (cli) (built: Jul 31 2026 05:11:11) (NTS) Copyright (c) The PHP Group Built by Debian Zend Engine v4.4.24, Copyright (c) Zend Technologies with Zend OPcache v8.4.24, Copyright (c), by Zend Technologies root@doh:~#
Anda jangan berpuas hati, meskipun mod PHP nya telah aktif, namun belum bisa digunakan, karena anda belum mengintegrasikannya dengan NGINX. Sebelum kita lanjutkan tentang cara menghubungkan mod PHP dengan NGINX, kita lanjutkan saja ke bagian selanjutnya. Nanti saja proses pengintegrasiannya kita akan jadikan satu dengan PHP-FPM.
B. Mengaktifkan PHP-FPM di NGINX
NGINX dengan PHP-FPM menyimpan PHP di kumpulan proses FastCGI terpisah, yang membuat memori dan manajemen proses lebih bersih sehingga menghasil proses kecepatan yang luar biasa.
Perlu anda ingat, mengaktifkan PHP-FPM memerlukan mod PHP, jadi antara PHP-FPM dan mod PHP adalah suatu modul yang saling berhubungan. Untuk menginstall PHP-FPM anda dapat menjalankan perintah berikut ini.
root@doh:~# apt-get install php-fpm php-cgi php8.4-fpm php8.4-cgi
Menjalankan PHP-FPM dengan systemd di Debian berversi, hal ini berkaitan dengan versi Debian yang anda gunakan.
- Debian 13 menggunakan
php8.4-fpm.service. - Debian 12 menggunakanphp8.2-fpm.service,
- dan Debian 11 menggunakan php7.4-fpm.service.
Periksa status aktif dengan perintah yang cocok dengan rilis Anda.
Bailah sekarang kita mulai mengaktifkan PHP-FPM.
root@doh:~# systemctl enable php8.4-fpm.service Synchronizing state of php8.4-fpm.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable php8.4-fpm root@doh:~# systemctl restart php8.4-fpm.service
Coba sekarang anda periksa status aktif PHP-FPM.
root@doh:~# systemctl status php8.4-fpm ? php8.4-fpm.service - The PHP 8.4 FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php8.4-fpm.service; enabled; preset: enabled) Active: active (running) since Sun 2026-09-13 02:13:12 PDT; 1min 33s ago Invocation: 1ab92e4cf35e4d0d9c2cb3e5e20d622e Docs: man:php-fpm8.4(8) Process: 56050 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.4/fpm/pool.d/ww> Main PID: 56034 (php-fpm8.4) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0.00req/sec" Tasks: 3 (limit: 2289) Memory: 9.6M (peak: 11.6M) CPU: 73ms CGroup: /system.slice/php8.4-fpm.service +-56034 "php-fpm: master process (/etc/php/8.4/fpm/php-fpm.conf)" +-56048 "php-fpm: pool www" +-56049 "php-fpm: pool www" Sep 13 02:13:12 doh systemd[1]: Starting php8.4-fpm.service - The PHP 8.4 FastCGI Process Manager... Sep 13 02:13:12 doh systemd[1]: Started php8.4-fpm.service - The PHP 8.4 FastCGI Process Manager. root@doh:~#
C. Mengaktifkan Dukungan PHP PHP-FPM Ke NGINX
Dengan Nginx dan PHP-FPM terinstal, anda harus mengedit file konfigurasi utama NGINX. Ini memungkinkan Manajer Proses FastCGI PHP untuk menangani permintaan terhadap file yang memiliki .ekstensi php.
FPM (FastCGI Process Manager) adalah implementasi PHP alternatif dari FastCGI. PHP FPM adalah satu-satunya modul yang cocok untuk server web Nginx murni.
Cara kerja PHP FPM:
- Pemrosesan cepat data statis.
- Tidak perlu server web Apache.
- Konsumsi RAM yang lebih rendah.
Kekurangan:
- Dukungan file konfigurasi yang hilang .htaccess. Ini memerlukan pengaturan sendiri aturan serupa di sisi server web Nginx.
Pada file /usr/local/etc/nginx/nginx.conf, tambahakn skrip berikut ini, agar NGINX dapat meload modul PHP.
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ .php$ {
fastcgi_split_path_info ^(..php)(/.)$;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
Perhatikan skrip yang berwarna BIRU. Skrip tersebut memberikan arti untuk terhubung dengan PHP-FPM, server NGINX mengijinkan 2 koneksi, yaitu koneksi socket UNIX dan koneksi TCP/IP. Pada contoh di atas kami menggunakan koneksi ocket UNIX.
Setelah itu, pada file /etc/php/8.4/fpm/php-fpm.conf, anda aktifkan beberapa skrip seperti contoh di bawah ini.
user = nginx
group = nginx
;listen = 127.0.0.1:9000
listen = /run/php/php8.4-fpm.sock;
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Perhatikan tulisan warna BIRU, penggunaan socketnya harus sama dengan di atas, menggunakan socket UNIX atau TCP/IP.
Untuk memeriksa keberadaan jalur socket PHP-FPM, jalankan perintah di bawah ini.
root@doh:~# test -S /run/php/php8.4-fpm.sock && printf 'PHP-FPM socket exists\n' PHP-FPM socket exists
D. Lakukan Pengetesan
Setelah semua konfigurasi, anda atur sesuai dengan arahan yang ada di artikel ini, tiba saatnya kita lakukan pengujian, apakah NGINX sudah bisa terhubung dengan PHP-FPM.
Cara melakukan pengujiannya sanagat sederhana, buka web browser Google Chrome dan ketikkan perintah https://[2001:470:36:61c:4000::2003]/info.php.
Perhatikan pada layar monitor anda, pada browser akan tampil seperti gambar di bawah ini.
Pengujian tersebut membutuhkan file info.php, jika anda belum memiliki file tersebut buat file info.php.
root@doh:~# nano /var/www/html/info.php <?php phpinfo(); ?>
Dalam contoh skrip di atas, artinya document root file nginx.conf, berada di folder /var/www/html.
Sampai sini anda telah berhasil menghubungkan server NGINX dengan PHP-FPM. Anda dapat menggunakan koneksi tersebut untuk menjalankan web server pribadi dengan menghostingnya langsung dari rumah atau melalui cloud hosting. Atau jika anda memiliki server email, bisa menggunaakn konfigurasi ini, untuk meningkatkan kecepatan dan keamanan server email anda.
