Konfigurasi Nginx PHP FastCGI adalah langkah esensial untuk menghubungkan web server Nginx dengan pemroses PHP melalui protokol FastCGI, seperti halnya saat melakukan instalasi WordPress di sistem operasi Ubuntu. Karena Nginx tidak memproses kode PHP secara mandiri, diperlukan jembatan seperti PHP-FPM (FastCGI Process Manager) agar server dapat mengeksekusi skrip PHP dengan optimal dan efisien.
Proses konfigurasi ini melibatkan penyesuaian blok server Nginx agar mengenali ekstensi .php dan meneruskannya ke soket PHP-FPM. Pendekatan ini memastikan performa tinggi dan penggunaan memori yang lebih rendah dibandingkan server web tradisional, menjadikannya standar industri untuk menghosting aplikasi web modern.
Komponen Utama Infrastruktur Nginx & PHP FastCGI
Sebelum menerapkan kode blok server, penting untuk memahami peran masing-masing komponen yang terlibat dalam eksekusi skrip PHP pada Nginx di lingkungan Ubuntu.
| Komponen | Fungsi Utama | Lokasi File Default |
|---|---|---|
| Nginx | Web server dan reverse proxy untuk menangani permintaan HTTP | /etc/nginx/ |
| PHP-FPM | Manajer proses FastCGI untuk mengeksekusi kode PHP | /etc/php/{version}/fpm/ |
| Unix Socket / TCP | Jalur komunikasi antara Nginx dan PHP-FPM | /run/php/php-fpm.sock |
Blok Konfigurasi Server Nginx untuk PHP
Untuk mengaktifkan dukungan PHP pada blok server default Nginx (biasanya terletak di direktori /etc/nginx/sites-available/default atau file konfigurasi virtual host khusus), Anda perlu menyertakan arahan location ~ \.php$. Berikut adalah contoh blok konfigurasi standar yang aman dan optimal:
server {
listen 80;
server_name contoh-domain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# Sesuaikan versi PHP dengan yang terinstal di sistem Anda
fastcgi_pass unix:/run/php/php-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Langkah Penerapan dan Pengujian
Setelah memperbarui file konfigurasi Nginx, ikuti langkah-langkah teknis berikut untuk menerapkan perubahan dan memastikan tidak ada kesalahan sintaks:
- Uji integritas sintaks konfigurasi Nginx menggunakan perintah terminal:
sudo nginx -t - Jika hasil pengujian menunjukkan status sukses (syntax is ok, test is successful), muat ulang layanan Nginx:
sudo systemctl reload nginx - Pastikan layanan PHP-FPM berjalan dengan memeriksa statusnya:
sudo systemctl status php-fpm(sesuaikan versi PHP, contoh:php8.1-fpm). - Buat file uji coba bernama
info.phpdi direktori root web (/var/www/html/info.php) berisi kode<?php phpinfo(); ?>untuk memverifikasi bahwa pemrosesan PHP berjalan dengan baik melalui browser.
Troubleshooting Masalah Umum
Kendala yang sering ditemui saat menyiapkan FastCGI adalah galat "File not found" atau layar putih (HTTP 500 Internal Server Error). Hal ini biasanya disebabkan oleh jalur soket fastcgi_pass yang tidak sesuai dengan versi PHP yang aktif, atau hak akses direktori root web yang belum diberikan kepada pengguna www-data. Pastikan direktori root memiliki kepemilikan yang tepat dengan perintah sudo chown -R www-data:www-data /var/www/html.