Belajar Laravel (Chapter 2 | Pengaturan Virtual Host)
Pengaturan virtual host di Laravel terbagi beberapa bagian, saya akan menjelaskan pengaturan untuk XAMPP/Apache di Windows. Kemudian Apache di Linux dan Nginx di Linux. Pastikan kita sudah paham apa itu web server, sebagai contoh kita menggunakan web server Apache & Nginx.
Scope of This Chapter
Pada tutorial ini kita akan membahas tentang pengaturan virtual host, supaya kita bisa membuatnya di local atau deploy di server. Seperti contoh laravel.local atau domain.com pada project Laravel kita. Pada saat artikel ini dibuat saya menggunakan framework Laravel versi 7.x.
Virtual Host
Menggunakan virtual host pada framework laravel dapat memudahkan applikasi yang dapat di akses menggunakan url seperti http://laravel.local di lingkup pengerjaan local atau kebutuhan di production nanti seperti menggunakan domain TLD contohnya http://domain.com.
XAMPP di Windows 10
Pertama, masuk ke folder C:/xampp/apache/conf/extra atau letak aplikasi xampp di install.
Edit file httpd-vhosts.conf dengen menggunakan text-editor. Misalnya menggunakan visual studio code.
# Virtual host untuk laravel.local
<VirtualHost *:80>
DocumentRoot "c:/xampp/htdocs/laravel_blog/public"
ServerName laravel.local
</VirtualHost>#Untuk localhost
<VirtualHost *:80>
DocumentRoot C:/xampp/htdocs
ServerName localhost
</VirtualHost>
Kedua, silahkan buka file httpd.conf yang ada di C:\xampp\apache\conf\httpd.conf, dibagian Directory isi dengan kode berikut ini:
<Directory “C:/xampp/htdocs/laravel_blog/public”>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
Ketiga, silahkan buka file host yang ada di C:\WINDOWS\system32\drivers\etc\hosts, kemudian dibagian paling bawah tambahkan kode berikut:
...
127.0.0.1 laravel.local
...
Restart Apache pada XAMPP Control Panel, kemudian akses http://laravel.local
Apache di Linux
Untuk menggunakan Apache sebagai web server bisa melakukan langkah-langkah berikut:
Silahkan edit hak akses folder pada project kita dengan menjalankan perintah
$ sudo chgrp -R www-data storage bootstrap/cache
$ sudo chmod -R ug+rwx storage bootstrap/cache
Sekarang kita sudah menyiapkan project laravel dan pemberian hak aksesnya, langkah selanjutnya membuat server block config untuk aplikasi kita dengan menyalin file default config, menggunakan perintah cp
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/laravel_blog.conf
Buka file konfigurasi yang baru saja kita buat menggunakan perintah nano,
$ sudo nano /etc/apache2/sites-available/laravel_blog.conf
Kemudian edit konfigurasi laravel_blog.conf, seperti berikut:
<VirtualHost *:8080>
ServerAdmin admin@example.com
ServerName laravel.local
DocumentRoot /var/www/html/laravel_blog/public
<Directory /var/www/html/laravel_blog/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
LogLevel debug
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
nano merupakan sebuah aplikasi editor berbasis texs untuk unix.
Setelah proses edit selesai silahkan tutup dan simpan konfigurasi file. Sekarang file konfigurasi tersebut harus kita enable dengan membuat symbolic link dari file ini ke folder sites-enabled, dengan menjalankan perintah
$ sudo a2ensite laravel_blog.conf
Silahkan periksa konfigurasi apache dengan menjalankan perintah
$ sudo apachectl configtest
Contoh responsenya ialah
Syntax OK
Dan yang terakhir silahkan bisa reload Apache menggukan perintah berikut :
$ sudo systemctl reload apache2
Nginx di Linux
Setelah selesai instalasi laravel, kita bisa konfigurasi Nginx sebagai web server project Laravel kita.
Silahkan edit hak akses folder pada project kita dengan menjalankan perintah
$ sudo chgrp -R www-data storage bootstrap/cache
$ sudo chmod -R ug+rwx storage bootstrap/cache
Sekarang kita sudah menyiapkan project laravel dan pemberian hak aksesnya, langkah selanjutnya membuat server block config untuk aplikasi kita dengan menyalin default config file, menggunakan perintah cp
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/laravel.local
Buka file konfigurasi yang baru saja kita buat menggunakan pertintah nano,
$ sudo nano /etc/nginx/sites-available/laravel.local
Kemudian edit konfigurasi nginx seperti berikut:
server {
listen 80;
listen [::]:80; root /var/www/html/laravel_blog/public;
index index.php index.html index.htm index.nginx-debian.html; server_name laravel.local; location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
Setelah proses edit selesai silahkan tutup dan simpan konfigurasi file. Sekarang file konfigurasi tersebut harus kita enable dengan membuat symbolic link dari file ini ke folder sites-enabled.
$ sudo ln -s /etc/nginx/sites-available/laravel.local /etc/nginx/sites-enabled/
Silahkan periksa konfigurasi yang kita buat menggunakan perintah
$ nginx -t
Contoh responsenya ialah
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Check Nginx version
Dan yang terakhir silahkan bisa reload Nginx menggukan perintah berikut :
$ sudo systemctl reload nginx
Conclusion
Semoga tutorial kali ini bisa dipahami ya, kita bisa explore lagi berbagai fitur dari virtual host itu sendiri, seperti pengaturan untuk https/ssl, pembatasan untuk eksekusi script bash/php pada folder tertentu (public/assets), serta pelajari perintah2 pada apache atau nginx.
Next Chapter
https://medium.com/dotlocal/belajar-laravel-chapter-3-tutorial-routing-55261499da69
Support the Author
Jika ada yang mau saran dan support saya, bisa hubungi saya di email tobidsn@gmail.com
Cheers
Tobi Ahmad
Founder of Dot Local