Belajar Laravel (Chapter 2 | Pengaturan Virtual Host)

Tobi Ahmad
dotlocal
Published in
3 min readMar 26, 2020

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

--

--

Tobi Ahmad
dotlocal

Web Developer, Blogger, & Open source enthusiast.