Nginx Error: 403 Forbidden

M Dedi Rudianto
Biji Inovasi
Published in
2 min readJul 11, 2018

Salah satu masalah yang kerap kali muncul ketika awal2 pasang web server adalah 403 Forbidden (13: Permission denied). Kurang lebih detil error-nya seperti ini kalau dilihat di file /var/log/nginx/error.log:

2018/07/11 17:46:52 [error] 4948#0: *1 “/srv/www/maxchat.id/index.html” is forbidden (13: Permission denied), client: 125.164.52.42, server: maxchat.id, request: “GET / HTTP/1.1”, host: “maxchat.id”

Anehnya, padahal file config nginx sudah standar, biasa2 aja, dan file index.html juga sudah dibikin. Di server lain dengan config yang sama lancar2 saja. Lebih aneh lagi ketika permission file dan folder dibuka total dengan perintah brutal chmod a+rwx -R, tetap saja tidak bisa, permission denied. Jadi, sepertinya permasalahannya bukan di permission atau pun nama file.

Setelah diotak-atik cukup lama, yang awalnya kirain karena firewall, ternyata bukan, karena firewall-nya tidak terpasang. Cari2 informasi di google, katanya bisa jadi yang bikin masalah adalah SELinux, alias model security baru di Linux. Untuk mencoba kebenarannya adalah dengan cara mematikan segera SELinux, dengan perintah:

sudo setenforce 0

Ternyata benar, SELinux yang bikin ulah, dengan ngeblokir akses ke file yang seharusnya dibuka oleh nginx. Kalau perintah di atas mau permanen, bisa dipasang di grub loader, dengan menambahkan parameter selinux=0.

Selain cara di atas ada cara yang lebih baik dan elegan yaitu ketikkan perintah semacam di bawah ini, supaya folder bisa diakses oleh nginx:

chcon -R -t httpd_sys_content_t /srv/www/yoursite

Ada kekurangannya sih, yaitu kalau misalkan naruh file baru di folder tersebut, perintah chcon perlu dijalankan kembali, kalau tidak, kembali lagi jadi ‘403 Forbidden’.

--

--

M Dedi Rudianto
Biji Inovasi

Digital Innovator and Entrepreneur, Founder at Biji Inovasi