Create a Vhost in Ubuntu 16.04

Vasim Shaikh picture Vasim Shaikh · Apr 2, 2018 · Viewed 8.8k times · Source

I have started working in laravel and using lampp. I have watched many tutorials that use a vhost to make user-friendly url. I want to do it on Ubuntu 16.04.

Following tutorial is not working for me:

https://ourcodeworld.com/articles/read/302/how-to-setup-a-virtual-host-locally-with-xampp-in-ubuntu

<VirtualHost *:80>
    DocumentRoot "/opt/lampp/htdocs/basicwebsite/public"
    ServerName mywebsite.dev
</VirtualHost>

Answer

Mouhammed Elshaaer picture Mouhammed Elshaaer · Jul 10, 2018

Setup a virtual host for a Laravel project

  1. First, copy the default configuration file and rename it:

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

  1. open myVhost.conf file using this command:

$sudo nano /etc/apache2/sites-available/myVhost.conf

  1. Add the directives:

assuming that the Laravel project is in /var/www/html/

ServerAdmin webmaster@localhost
serverName www.myAwesomeLink.com
DocumentRoot /var/www/html/laravel-app/public


<Directory /var/www/html/laravel-app>
        AllowOverride All
</Directory>

so now the file will look something like this:

myVhost.conf file

save and close.

  1. Now add an entry in the hosts file:

$sudo nano /etc/hosts

add this line:

127.0.0.1   www.myAwesomeLink.com

save and close.

  1. Enable site and the rewrite mode:

$sudo a2enmod rewrite

$sudo a2ensite myVhost.conf

  1. Restart the server:

$sudo service apache2 restart

  1. Serve the Laravel project:

open the project folder

php artisan serve

this will serve on port 8000 by default

you can also specify the port

php artisan serve --port=4200

  1. Open the browser:

http://www.myAwesomeLink.com:8000

or any other specified port.