Konfigurasi Nginx untuk Laravel Framework sebenarnya sudah banyak yang share, jadi artikel ini hanya sebagai catatan saja ya…
Setting Nginx untuk Laravel Framework bisa dikatakan mudah bisa juga sulit-mudah. 😀 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.
Admin LUKMANLAB, DevOps Engineer, Site Reliability Engineer, System Administrator.