Gérer plusieurs sites sous Apache
Sommaire
I.Présentation :
Apache uniquement d'un site lorsque vous l'installez, un site accessible sur le port 80 (HTTP) dont la racine est le répertoire /var/www/. Cependant, est fort heureusement, il est possible de gérer plusieurs sites sous Apache sinon imaginez s'il faudrait un serveur par site... Cela est possible grâce aux hôtes virtuels, appelées VirtualHost dans Apache. Ce tutoriel vous apprend à créer et configurer un hôte virtuel supplémentaire jusqu'à sa mise en ligne.
II. Emplacement des fichiers de configuration d’Apache
L’ensemble des fichiers de configuration d’Apache se trouve dans le répertoire suivant :
/etc/apache2/
III. Indiquer le nom du serveur web Apache – ServerName
Par défaut, le fichier httpd.conf d’Apache est vierge et lorsque vous redémarrez votre serveur Apache il vous indique l’erreur suivante :
Ce qui signifie qu’il ne connait le nom FQDN c'est-à-dire le nom pleinement qualifié utilisé par le serveur. Pour corriger cela il faut modifier le fichier httpd.conf et indiquer une valeur à l’option ServerName :
ServerName serveur.nom.domaine ServerName srvweb.neoflow.fr (par exemple)
Ensuite redémarrez votre serveur avec la commande suivante et vous verrez que vous n’avez plus l’erreur :
/etc/init.d/apache2 restart
ou
/etc/init.d/apache2 reload
IV. Les VirtualHosts
Les VirtualHosts ou serveurs virtuels permettent de faire fonctionner plusieurs sites web sur un seul et unique serveur Apache.
V. Déclarer l’adresse et le port d’écoute d’un VirtualHost
Pour déclarer un VirtualHost supplémentaire c'est-à-dire ajouter un second site sur un serveur Apache, il faut éditer le fichier :
/etc/apache2/ports.conf
Ensuite, ajoutez les deux lignes suivantes en adaptant à votre configuration :
NameVirtualHost *:800 Listen 800
Par exemple dans le cas ci-dessus, on accédera à cet hôte virtuel quand on accédera au serveur sur le port 800.
VI. Paramétrer le VirtualHost
Le fichier de configuration de chaque VirtualHost se situe dans le répertoire « sites-available » qui se situe dans :
/etc/apache2/sites-available
Créez un nouveau fichier dans ce répertoire pour que l’on paramètre notre nouveau site (qui correspond à un VirtualHost). Dans cet exemple, nous avons appelé le fichier du site "admin" et le répertoire de ce site sera "/var/admin", un site auquel on accède sur le port 800. Le contenu à ajouter au fichier est le suivant :
DocumentRoot /var/admin
Toutes les options concernant ce site doivent être renseignées dans le VirtualHost (entre la balise d'ouverture et de fermeture). Ensuite, pour ajouter la gestion des journaux pour ce site, ajouter ces lignes à l'intérieur du VirtualHost :
# Pour les journaux : ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined
En ce qui concerne les différentes options d'Apache, vous pouvez reprendre les options du site par défaut et les compléter si besoin (à ajouter également dans le VirtualHost) :
Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <directory "="" usr="" lib="" cgi-bin"=""> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all
- DocumentRoot /var/admin : Indiquez le chemin vers le répertoire du site (par exemple pour le site par défaut le répertoire est /var/www).
- Allow from all : Indique que tout le monde peut accéder au répertoire (donc au site).
- AllowOverride : Donner la priorité ou non au fichier .htaccess si il y en a un.
- FollowSymLinks : Indique au serveur qu'il doit suivre les liens symboliques.
- +ExecCGI : L'exécution des scripts utilisant le module mod_cgi est permise.
VII. Activer le site
Maintenant que la partie création et configuration du site est terminée, il ne reste plus qu'à l'activer pour pouvoir y accéder. Pour cela on utilise la commande "a2ensite" suivie du nom du site à activer, donc dans notre cas "admin".
a2ensite admin
VIII. Recharger la configuration d'Apache
Pour que les modifications soient prise en compte rechargez la configuration d'Apache avec la commande :
service apache2 reload
Les deux sites sont maintenant en lignes, le site par défaut est accessible sur le port 80 et le second que nous venons d'ajouter est accessible sur le port 800 de notre serveur :
Bonjour,
Grand merci pour vos partages, mais moi je suis a la recherche de tuto permettant de faire la redirection de port par exemple:
j’ai une application qui tourne sur le port 9000 donc je suis obligé d’écrire MON_ADRESSE_IP:9000, ce que je cherche c’est de cacher ce port 9000 et le rediriger au port 80 et par exemple j’écris MON_ADRESSE_IP/admin pour me connecter.
(MON_ADRESSE_IP:9000 ==> MON_ADRESSE_IP/admin)
Merci