Sulhi.id

Catatan Kecil Seputar Blogging dan Koding

Membuat Virtual Host Untuk Project Laravel di Apache

Wednesday, March 8th, 2017     Linux

Pada tulisan sebelumnya dijelaskan bagaimana menginstall laravel di Linux (Ubuntu). Untuk keperluan testing Laravel memang punya web server sendiri, yaitu dengan menggunakan  composer melalui perintah $php artisan serve. Bagaiman kalau pembuatan aplikasi sudah selesai dan kita perlu mem-publish. Tentunya saja diperlukan web server yang sesungguhnya, seperti Apache atau Nginx.

php artisan serve
Laravel development server started: <http://127.0.0.1:8000>

Pada kesempatan ini saya akan menjelaskan bagaimana caranya agar web laravel bisa dijalankan dengan Web Server Apache. Saat ini saya menggunakan Apache 2 pada Ubuntu 16.10.

Langkah pertama tentu saja kita harus install apache terlebih dahulu, jika belum terinstall silakan ketikan perintah berikut:

sudo apt-get update
sudo apt-get install apache2

Membuat Project Laravel

Misalkan kita akan membuat project Laravel dengan nama blog, dapat menggunakan perintah:

composer create-project --prefer-dist laravel/laravel blog

Atau

laravel new blog

Untuk perintah kedua pastikan anda sudah setting $PATH composer dengan benar. Setting $PATH composer di linux bisa lihat referensi di sini.

Berikut direktori dan struktur laravel yang barusan dibuat.

Karena project ini dibuat bukan pada tempat root directoy apache (/var/www/html) melainkan di folder home (home/asch/www). Agar tidak bermasalah dengan hak akses apache, terlebih dahulu kita perlu merubah  group menjadi www-data serta memberikan writable pada folder storage.

sudo chgrp -R www-data /home/asch/www/blog
sudo chmod -R 775 /home/asch/www/blog/storage

Setting Virtual Host

Setelah project laravel selesai dibuat, saatnya kita buat virtual host pada apache. Berikut perintahnya:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/laravel.conf

Perintah di atas, artinya kita meng-copy file 000-default.conf sebagai konfigurasi virtual host default apache menjadi  file laravel.conf sebagai virtual host laravel.

Silakan edit file  laravel.conf

sudo nano /etc/apache2/sites-available/laravel.conf

Selanjutnya sesuaikan sehingga hasil akhirnya seperti berikut:

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName laravel.dev
	ServerAlias laravel.dev
	DocumentRoot /home/asch/www/blog/public

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	<Directory /home/asch/www/blog/public/>
		Options Indexes FollowSymLinks
		AllowOverride All
		Require all granted
	</Directory>
</VirtualHost>

Perhatikan, document root bukan pada nama project (blog), tetapi pada folder public (blog/public).

Langkah berikutnya mengaktifkan virtual host laravel.conf dan rewrite.

sudo a2ensite laravel.conf
sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart

Silakan test pada browser dengan url http://laravel.conf.