Skip to main content

How to configure multiple host for Apache on Ubuntu

Introduction

I recently switched to Ubuntu Desktop. Everything was simple and
straight forward until i needed to run multiple Laravel projects on my
LAMP stack.

For the records, I will also demonstrate how i installed a stable LAMP setup. If you are only interested in configuring multiple Host on Apache, you can click here to skip the story.

Installing the LAMP Stack

LAMP simply means Linux,Apache,MySql,PHP.

I tried so many methods but the command below made life easier for the living.

sudo apt-get install lamp-server^

The command above installed all i needed without any issue. I already configured Mysql from previous installation. All data and configurations of MySql from previous installation remained intact.

I installed the laravel installer and initialized a new Laravel project in the Apache directory.

cd /var/www/html

At first i was comfortable with using 

php artisan ser

Later i decided i was not convenient with the 127...:8080, in windows i had laragon to create vanity urls for my new projects.

 

Configuring Apache

1. first I created 2 laravel projects in the home directory. one called flighter and the other called pakt.

2. I also decided that flighter will be accessible as fly.mk and pakt will be accessible as pakt.pak

2. We need to create entries for these custom domains in the /etc/hosts file. see below command

nano /etc/hosts

you can see the screenshots before and after editing the host file.


3. I created an apache conf file for my domain names. the conf files are usually stored at /etc/apache2/sites-available.

below is a sample of the conf file i created. you can create many conf files if you like but i chose to use one conf file for both domains i am creating.

<VirtualHost *:80>  
  ServerAdmin admin@example.com
     DocumentRoot /var/www/html/flighter/public
     ServerName fly.mk
     ServerAlias www.fly.mk

     <Directory /var/www/html/flighter/public>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/flighter-error.log
     CustomLog ${APACHE_LOG_DIR}/flighter-access.log combined
</VirtualHost>

<VirtualHost *:80>   
  ServerAdmin admin@example.com
     DocumentRoot /var/www/html/pakt/public
     ServerName pakt.pak
     ServerAlias www.pakt.pak

     <Directory /var/www/html/pakt/public>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/pakt-error.log
     CustomLog ${APACHE_LOG_DIR}/pakt-access.log combined
</VirtualHost>

4. save the code above as mydomains.conf

5. run the commands below to enable the new virtual hosts and rewrite modules for our projects.

sudo a2ensite mydomains.conf

sudo a2enmod rewrite

6. then restart apache with the command below

systemctl restart apache2

7. now you can access any of the laravel projects from 

fly.mk and pakt.pak

 

I hope i was brief enough to spark your interest most articles and SO answers forget to mention steps 1, 2 and 3. 

Let me know if you faced any challenge while practicing these.

Thanks for reading.

Comments

Popular Articles

Issue with installing python-axolotl or python-axolotl-curve25519 on Windows

It is peeve amazing how many hours get burnt while trying to resolve simple package dependency issues. I may be too dumb to proffer a lasting one-fits-all solution to all dependency issues, but I got this issue fixed in my own case. Problem Description: The python-axolotl library requires certain dependencies that are not properly managed when installing libraries via a command line's requirement.txt file. I got real help by reading through this link below, but this page might be more helpful when it comes to detailed instructions. Actual instructions: https://github.com/tgalal/python-axolotl Typical errors might look like the following: 1. In this case, missing library(s). Libraries needed for compiling some python resources. Unfortunately, http://aka.ms/vcpython27  has been decommissioned because Python2x is EOL. You can still get the VcPython27 from an archive at https://web.archive.org/web/20210106040222/download.microsoft.com/download/7/9/6/796EF2E4-801B-4F...

[SOLVED] Linux - Issues installing Docker on Ubuntu - libseccomp2 version 2.3.1 installed but 2.4 required

This article has been improved for a better understanding - goto  https://splashcoder.blogspot.com/2023/07/installing-docker-on-ubuntu-1804-solved.html There is a possibility that you are trying to install docker. There is a very comprehensive guide at https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository. The linked guide serves as a reference for this article. We try to address the common errors in this article. Just so you won’t have to scour the entire answers on StackOverflow. Step 1: The first thing is to run our famous "apt update" command. So run the command below. sudo apt-get update You may observe that there are some errors. And YES! we are using a fairly old Ubuntu 18.04 Bionic Beaver Release. It seems perfect for this as most people have issues installing docker anyways. To resolve this, you may refer to  Configure DNS server IP to resolve errors with apt-get update Step 2: Following the Docker article, we should run the commands below. sudo...

VS CODE: Unable to install extensions on Ubuntu/Linux

Hey, its one of those days, i just wished i could code away the night. i decided that tonight, it was going to be VS Code all through. I closed Sublime text. It was not long before I started missing the php code linting and ever intelligent code completions that were built into sublime text. I checked the suggestions on the Extensions Tab of VS Code. and there it was! Felix Becker's "PHP IntelliSense" package. To my cute surprise, Upon clicking, the extension's description and Installation "Read Me" could not display correctly, 'twas as good as blank. All i could see was this: I thought, this is something light, so i started searching but then it was not better explained except for the GitHub issue which I found to be useful, Link is at the bottom of this page.  I hate to discover it was a DNS issue. How to detect the Issue Simply visit the URL below, if you are able to view the image on the page, then you are not affected by this issue. DNS Test URL: ht...