Konfigurasi Nginx untuk Laravel Framework (Sub Directory)
Dedicated Author of LUKMANLAB
Konfigurasi Nginx untuk Laravel Framework sebenarnya sudah banyak yang share, jadi artikel ini hanya sebagai catatan saja ya...

Nginx - Laravel Framework
Setting Nginx untuk Laravel Framework bisa dikatakan mudah bisa juga sulit-mudah. :D Kenapa saya bilang seperti itu?
Pernahkah temen-teman setting nginx untuk laravel di server?
Kasus yang mungkin akan temen-temen temukan adalah:
- Misal, dalam satu server terdapat banyak aplikasi laravel gimana settingnya?
- Misal, dalam satu domain kita punya banyak aplikasi laravel gimana settingnya?
Jawaban (vQ):
- Jika dalam satu server terdapat banyak aplikasi laravel, cara yang mudah untuk konfigurasi nginx-nya adalah dengan memisahkan masing-masing aplikasi itu menggunakan konfigurasi subdomain nginx.
- Nah, jika kasusnya dalam satu domain terdapat banyak aplikasi laravel, cara yang bisa dilakukan adalah mengkonfigurasi nginx-nya dengan metode path.
Cara ini tentu tidak sesederhana yang kita ketahui, ada beberapa langkah yang cukup kompleks dilakukan agar aplikasi laravel bisa berjalan sebagaimana mestinya.
Nginx-Laravel pada Root Directory
Konfigurasi ini bisa diterapkan pada satu domain atau beberapa subdomain. Contoh konfigurasi pada /etc/nginx/sites-available/default :
server {
listen 80;
root /var/www/html/laravel/public;
index index.php index.html;
server_name lukmanlab.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location ~ /\.ht {
deny all;
}
location ~ /\.env {
deny all;
}
location ~ /\.git {
deny all;
}
}
Nginx-Laravel pada Sub Directory
Konfigurasi ini jika aplikasi Laravel berada pada subdirectory, bisa diterapkan pada satu domain jikan ingin menjalankan beberapa aplikasi laravel. Misal anda ingin akses: http://domainanda.com/sublaravel
Contoh konfigurasi pada /etc/nginx/sites-available/default :
server {
listen 80;
root /var/www/html;
index index.html index.php;
server_name lukmanlab.com;
location ^~ /sublaravel {
alias /var/www/html/sublaravel/public;
try_files $uri $uri/ @sublaravel;
location ~ \.php {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/www/html/sublaravel/public/index.php;
}
}
location @sublaravel {
rewrite /sublaravel/(.*)$ /sublaravel/index.php?/$1 last;
}
location ~ /\.ht {
deny all;
}
location ~ /\.env {
deny all;
}
location ~ /\.git {
deny all;
}
}
Oke, jadi seperti itu.