Install LAMP on Ubuntu

In my previous post, I showed you how to install a LAMP (Linux, Apache, MySQL, PHP) stack on Ubuntu 11.10. In this post, I will guide you through the process of configuring virtual hosts. This will allow you to create multiple independent websites, even across different domains.

Setting up the Directory Structure

First, decide where you want to store the folder that will contain your website files. In my case, I have a large ‘/home’ partition, so I chose to create a folder at ‘/home/www’.

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

Creating a Virtual Host Configuration

Now, let’s create a new virtual host configuration file.

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

Edit the ‘example’ file and paste the following code into it:

<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

Save the file and run the following commands to create the necessary directory structure and enable the virtual host:

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

Configuring Local DNS Resolution

To access your website, you can either configure your DNS to resolve the URL ‘http://example.localhost’, or you can simplify things by adding an entry to your ‘/etc/hosts’ file.

sudo gedit /etc/hosts

Add the following line to the file: example.localhost

Save the file and try opening the URL ‘http://example.localhost’ in your web browser.

You can check for any site errors and warnings by inspecting the log file located at ‘/home/www/log/error.log’.