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:
- Membuat file .conf lalu diinclude dari
/etc/nginx.conf
. - 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
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](/storage/2017/Juni/laravel-konfigurasi-virtual-host-di-nginx/Screenshot%20from%202017-06-08%2013-07-37.webp)