Jago Ngoding

Nggak jago beneran, cuman pingin berbagi aja

Laravel: Konfigurasi Virtual Host di Nginx

3 months ago · 2 MIN READ
#Web Server  #Laravel 

Bismillah.

Pada tulisan ini, saya akan melanjutkan tutorial sebelumnya (Cara install laravel di linux). Sekarang saya akan membahas bagaimana cara mengkonfigurasi virtual host untuk laravel di nginx.

Jika sebelumnya kita menjalankan laravel dengan perintah php artisan serve yang mana akan mendengar (listen) request di port 8080 dengan server bawaan php, sekarang kita akan mencobanya dengan cara yang lebih gaul. Yaitu kira-kira dengan domain seperti: blogsaya.dev, tokoonline.dev, kabarinaja.dev, atau yang semisalnya.

Note: saya anggap pembaca di sini sudah paham cara konfigurasi nginx, atau sudah paham bagaimana cara membuat vh di nginx (meskipun bukan laravel). Soalnya dalam beberapa distro konfigurasi default dari nginx-nya berbeda-beda. Sehingga apa yang saya tulis di sini boleh jadi berbeda dengan yang ada pada punya pembaca.

Daftarkan Domain di /etc/hosts

Sebelum kita mengubah konfigurasi server nginx, yang perlu kita lakukan adalah meregister domain yang akan kita gunakan sebagai virtualhost agar terpointing ke ip local.

Caranya buka file /etc/hosts. Lalu tambahkan

127.0.0.1       jagongoding.dev         localhost

Konfigurasi Nginx

Secara umum terdapat dua cara:

  1. Membuat file .conf lalu diinclude dari /etc/nginx.conf.
  2. Konfigurasi virtual host langsung ditulis di /etc/nginx/nginx.conf (Tidak direkomendasikan).

Di sini mau kita pakai cara pertama atau cara kedua, maka konfigurasinya tetap sama.

Berikut konfigurasi yang bisa digunakan untuk membuat virtual host project laravel anda:

nb: ubah bagian server_name dan root sesuai dengan kebutuhan.

server {
        listen 80;
        server_name jagongoding.dev;
        root /usr/share/nginx/html/jagongoding/public;

        index index.html index.htm index.php;

        charset utf-8;

        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }

        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }

        access_log off;
        error_log  /var/log/nginx/myapp-error.log error;

        sendfile off;

        client_max_body_size 100m;

        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors off;
            fastcgi_buffer_size 16k;
            fastcgi_buffers 4 16k;
        }

        location ~ /\.ht {
            deny all;
        }
    }

Restart Nginx

Restart nginx dengan perintah:

sudo systemctl restart nginx

Chmod 777 folder storage

Laravel membutuhkan akses untuk menulis file di folder /storage. Maka kita perlu memberi akses penuh kepada folder tersebut.

# cd <lokasi-project>
# chmod -R 777 storage

Buka alamat tersebut di browser

Dan berikut penampakan projek saya ketika saya buka di browser dengan alamat jagongoding.dev.

Screenshot from 2017-06-08 13-07-37.png

···

Ibnu Jakaria

Muslim
comments powered by Disqus


Proudly powered by Canvas · Sign In