Search code examples
laravelubuntulampp

Create a Vhost in Ubuntu 16.04


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>

Solution

  • 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.