Membuat Virtual Host Untuk Project Laravel di Apache
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.