Apache2 on Ubuntu – Hosting multiple websites

Create directories for a new site. E.g.
/var/www/sites/mysite.com/htdocs
/var/www/sites/mysite.com/logs
/var/www/sites/mysite.com/cg-bin

In /etc/apache2/conf.d/ create new file virtual.conf
#
# Running multiple virtual hosts.
#
NameVirtualHost *

/etc/apache2/sites-available
This contains configuration files for sites which are available but not necessarily enabled.
/etc/apache2/sites-enabled
This directory contains site files which are enabled.
Each configuration file in the sites-enabled directory is loaded when the server starts – whilst the files in sites-available are ignored.
Configuration files should be created in sites.available and later enabled by
running a2ensite command if needed (see below).

Create /etc/apache2/sites-available/www.mysite.com with the following contents:

<VirtualHost *>
ServerAdmin webmaster@mysite.com
ServerName  www.mysite.com
ServerAlias mysite.com

# Indexes + Directory Root
DirectoryIndex index.php index.html
DocumentRoot /var/www/sites/mysite.com/htdocs

# CGI Directory
ScriptAlias /cgi-bin/ /var/www/Sites/mysite.com/cg-bin
<Location /cgi-bin>
Options +ExecCG
</Location>

# Logfiles
ErrorLog  /var/www/sites/mysite.com/logs/error.log
CustomLog /var/www/sites/mysite.com/logs/access.log combined
</VirtualHost>

Enable site:
a2ensite www.mysite.com
(To disable – a2dissite www.mysite.com)
This puts a symbolic link in sites-enabled

Restart apache:
/etc/init.d/apache2 reload

In addition (after changing from one website to multiple):
Delete: default in sites-available and 000-default in sites-enabled

Default site:
One of the sites is a default site. The default site is loaded when the server can’t match URL address.
It looks like the default site is the one which comes first in alphabetical order in sites-available folder. 

To stop warning NameVirtualHost *:80 has no VirtualHosts when reloading apache
/etc/apache2/ports.conf
Comment:
#NameVirtualHost *:80

To stop warning apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName when reloading Apache
/etc/apache2/apache2.conf
Add Line:
ServerName www.mysite.com

Ubuntu Server 10.10


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *