Konfigurasi Nginx PHP FastCGI pada Server Ubuntu

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:

  1. Uji integritas sintaks konfigurasi Nginx menggunakan perintah terminal: sudo nginx -t
  2. Jika hasil pengujian menunjukkan status sukses (syntax is ok, test is successful), muat ulang layanan Nginx: sudo systemctl reload nginx
  3. Pastikan layanan PHP-FPM berjalan dengan memeriksa statusnya: sudo systemctl status php-fpm (sesuaikan versi PHP, contoh: php8.1-fpm).
  4. Buat file uji coba bernama info.php di 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.