Solusi membuka halaman PHP di browser malah terdownload pada Nginx

Salah satu kasus yang umum terjadi pada yang baru pertama kali belajar Nginx adalah masalah eksekusi file PHP. Jadi pakai browser apapun untuk mengakses websitenya baik Mozilla Firefox, Google Chrome dan sebagainya yang terjadi bukan halaman websitenya terbuka malah didownload. Bikin bingung kan?

Nah… ini masalahnya sepele kok, jadi sederhananya Nginx tidak mengenali file PHP yang diminta itu akan diapakan jadi otomatis menggunakan perilaku defaultnya yakni menyajikan utuh untuk diunduh pengunjung situsnya.

Bagaimana solusinya? Ya… kita berikan instruksi ke Nginx misal ada file php akan diterapkan instruksi apa dan ini berarti kita edit konfigurasi virtual host dari websitenya. Tambahkan kode berikut kedalamnya:

location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

Atau alternatifnya kalau yang diatas gagal berarti masih pakai port bukannya socket:

location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

Setelahnya silahkan restart Nginx:

service nginx restart

atau

systemctl restart nginx

Saya sangat menyarankan anda memastikan proses instalasi LEMP (Linux, Nginx, MySQL, PHP) sudah benar, silahkan anda cek tutorial saya sebelumnya sebagai perbandingan dan referensi.

Tinggalkan komentar