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 running a2ensite command if needed (see bellow).

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 symbolic link in sites-enabled

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

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

Default site:
One of the sites is a default site. Default site is loaded when 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 *

Captcha
captcha
Reload