Configurer Apache2 sur un serveur linux

Un serveur web apache2 est capable de gérer plusieurs sites soit plusieurs arborescence de dossiers, ceci grâce à la notion d’hôtes virtuels (virtualhost).

Il y à plusieurs façon pour mettre cette redirection en place:

  • Hôtes virtuels basés sur le nom
  • Hôtes virtuels basés sur le port
  • Hôtes virtuels basés sur l’adresse IP

Une méthode tend à devenir le standard dans l’hébergement web il s’agit des hôtes virtuels basés sur le nom. Il s’agit simplement d’associer plusieurs noms DNS à une seule adresse IP.

Dans un premier temps nous allons définir des noms DNS pour nos sites, dans le fichier /etc/hosts on ajoute autant de fois que nécessaire la ligne: « 127.0.0.1 le nom de domaine du site« 

127.0.0.1 lesite1.fr
127.0.0.1 lesite2.fr

Ensuite au lieu de créer les deux dossiers de nos sites directement dans le répertoire du serveur /var/www On préféra les créer dans un répertoire personnel comme /home/UTILISATEUR/www-dev/lesite1 et  /home/UTILISATEUR/www-dev/lesite2.

Ensuite on créer deux liens symboliques depuis le répertoire principal du serveur vers nos dossiers personnels:

sudo ln -s /home/UTILISATEUR/www-dev/monsite1 /var/www/lesite1
sudo ln -s /home/UTILISATEUR/www-dev/monsite2 /var/www/lesite2

Ces liens faits, nous allons créer les fichiers de configurations pour apache. Dans « /etc/apache2/sites-available » se trouve un fichier nommé « default« , copier ce dossier il servira de modèle pour se faire:

cp default lesite1
cp default lesite2

On édite le fichier « lesite1 » par exemple comme suit:

<VirtualHost *:80>
	ServerAdmin votre-mail@lesite1.fr
	ServerName lesite1.fr
	ServerAlias www.lesite1.fr

	DocumentRoot /var/www/lesite1
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/lesite1>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Enfin, une fois les deux fichiers modifiés on active nos deux sites grâce aux commandes:

sudo a2ensite lesite1
sudo a2ensite lesite2

on recharge la config d’apache grâce à la commande

sudo /etc/init.d/apache2 reload