Konfigurasi Nginx untuk Laravel Framework (Sub Directory)

Konfigurasi Nginx untuk Laravel Framework sebenarnya sudah banyak yang share, jadi artikel ini hanya sebagai catatan saja ya…

Nginx - Laravel Framework
Nginx – Laravel Framework

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.

Leave a Reply