LAMP Virtual Hosts

In my previous post, I explained how to install LAMP on Ubuntu 11.10. This time, let’s delve into configuring virtual hosts. This setup allows you to host multiple independent sites, potentially across different domains.

Choosing a Storage Location for Site Files

First, decide where to store the files for your sites. I use my large /home partition for this purpose and created a folder at /home/www.

Setting Up the Environment

Execute the following commands to create necessary directories and set permissions:

sudo mkdir /home/www /home/www/log
sudo chmod ugo+rw /home/www /home/www/log

Now, let’s create a new virtual host:

sudo gedit /etc/apache2/sites-available/example

Inside this file, paste the following configuration:

<VirtualHost *:80>
  ServerName example.localhost
  ServerAlias www.example.localhost
  DocumentRoot /home/www/example
  ErrorLog /home/www/log/error.log
  CustomLog /home/www/log/access.log combined

  <Directory /home/www/example>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all

After saving the file execute these commands to set up the site:

mkdir /home/www/example
echo "<?php echo(\"index page\"); ?>" > /home/www/example/index.php
sudo a2ensite example
sudo service apache2 reload

To access your new site you can either configure DNS to resolve http://example.localhost or simply modify /etc/hosts:

sudo gedit /etc/hosts

Then add: example.localhost

Save the file and try accessing http://example.localhost. To view any site errors or warnings, check the `/home/www/log/error.log