logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:reseau:apache2:multisite [03/07/2014 00:06]
127.0.0.1 modification externe
doc:reseau:apache2:multisite [09/01/2016 13:47]
milou [Déclaration des sites existants]
Ligne 1: Ligne 1:
-====== ​Configuration d'​un ​serveur ​Apache pour gérer du multisite ​======+====== ​apache2 : ​serveur ​Web multi-site ​====== 
 + 
 +  * Objet : Mettre en place un serveur apache2 hébergeant plusieurs sites 
 +  * Niveau requis : {{tag>​débutant avisé}} 
 +  * Commentaires : //Vous pouvez héberger différents sites relatifs à différents noms de domaine sur un même serveur apache2, trop facile !//​ 
 +  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) 
 +  * Suivi : {{tag>​à-tester}}  
 +    * Création par [[user>​freddec]] le 22/​03/​2011 
 +    * Mis à jour par [[user>​bundy]] le 25/10/2012 (sous squeeze) 
 +    * Mis à jour par [[user>​bendia]] le 11/10/2015 (pour Jessie) 
 +    * Mis à jour par [[user>​mercredi]] le 19/10/2015 (pour Jessie) 
 +  * Commentaires sur le forum : [[http://​www.debian-facile.org/​forum/​viewtopic.php?​id=3659|ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
  
-//Testé par //​**bundy**//​ le //​25/​10/​2012//​ avec succès sous //​squeeze//​.//​ 
-  * Le retour sur le forum est ici : [[http://​www.debian-facile.org/​forum/​viewtopic.php?​id=3659 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
 ===== Préambule et pré-requis ===== ===== Préambule et pré-requis =====
 +
 Ce bref tutorial a deux objectifs : Ce bref tutorial a deux objectifs :
-  - Me servir de pense bête ! (et vous en faire profiter) :-P +  - Me servir de pense-bêtes ​! (et vous en faire profiter) :-P 
-  - Expliquer comment mettre en œuvre la gestion ​multisite ​d'Apache+  - Expliquer comment mettre en œuvre la gestion ​multi-site ​d'Apache2
  
-Tout est parti du besoin que j'ai eu de devoir tester des outils de "​création de site" au sein de l'​intranet de mon travail. ​\\ +Tout est parti du besoin que j'ai eu de devoir tester des outils de "​création de site" au sein de l'​intranet de mon travail. 
-Il me fallait donc un serveur ​Apache ​et la possibilité de tester plusieurs sites, un par outil (Divers CMS, Divers Wiki... ). Le tout en local. ​\\ + 
-Or, un coup de Google m'a montré beaucoup des liens dans la langue de Shakespeare,​ mais bien peu dans celle de Molière et en tous les cas rien qui m'ait beaucoup avancé. ​\\ +Il me fallait donc un serveur ​Apache2 ​et la possibilité de tester plusieurs sites, un par outil (Divers CMS, Divers Wiki... ). Le tout en local. 
-Je vais donc, avec ce tutoriel, essayer de vous (me) faire gagner du temps \\+ 
 +Or, un coup de Google m'a montré beaucoup des liens dans la langue de Shakespeare,​ mais bien peu dans celle de Molière et en tous les cas rien qui m'ait beaucoup avancé. 
 + 
 +Je vais donc, avec ce tutoriel, essayer de vous (me) faire gagner du temps.
  
 "hère we Go..." "hère we Go..."
  
 ==== Pré-requis ==== ==== Pré-requis ====
-  * Un serveur Apache 2 (+/- PHP, MySQL suivant le type de site à réaliser) \\ 
-  * Au moins 2 sites a tester ! 
  
-Je ne reviens pas sur les modalités d'installation ​de ces outils, [[:doc:​obsolete:​apache|reportez vous à cette page du wiki Debian-Facile]]+  * Un serveur Apache 2 (+/- PHP, MySQL suivant le type de site à réaliser) 
 +<note info>​**Pour ceux n'ayant pas de serveur LAMP installé** :​ 
 +<code root>​apt-get install apache2 mysql-server libapache2-mod-php5 php5-mysql</​code>​ 
 +Et voilà. 
 +</​note>​ 
 +  * Au moins 2 sites à tester ! 
 + 
 +<note warning>​Sous Debian 8 (Jessie)Apache2 passe de la version 2.2 à la version 2.4. Il existe des différences de configuration entre ces 2 versions indiquées ​[[https://httpd.apache.org/​docs/​trunk/​fr/​upgrading.html#​run-time|dans la documentation d'​Apache2]]</​note>​
  
 ===== Déclaration des sites existants===== ===== Déclaration des sites existants=====
 +
 Dans Apache2, les sites disponibles (on parle de virtualhosts,​ ou vhost) sont déclarés à l'aide de fichier dans le répertoire : ''/​etc/​apache2/​sites-avalaible/''​ Dans Apache2, les sites disponibles (on parle de virtualhosts,​ ou vhost) sont déclarés à l'aide de fichier dans le répertoire : ''/​etc/​apache2/​sites-avalaible/''​
  
-Partons du principe que vous souhaitez mettre en ligne 2 sites que nous nommerons **"site-1"** et **"site-2"** (pourquoi faire compliqué ? 8-)) \\+Partons du principe que vous souhaitez mettre en ligne 2 sites que nous nommerons **site-1** et **site-2** (pourquoi faire compliqué ? 8-)) \\
  
 Apache vous livre lors de son installation dans ce même répertoire un fichier "​default"​ qui va nous servir de base pour nos 2 sites \\ Apache vous livre lors de son installation dans ce même répertoire un fichier "​default"​ qui va nous servir de base pour nos 2 sites \\
-On va donc en faire une copie+On va donc en faire une copie :
  
-<​code>​cp /​etc/​apache2/​sites-avalaible/​default /​etc/​apache2/​sites-avalaible/​site-1+=== Pour Apache2.2 dans Wheezy === 
 +<​code ​root> 
 +cp /​etc/​apache2/​sites-avalaible/​default /​etc/​apache2/​sites-avalaible/​site-1</​code>​ 
 +<code root>cp /​etc/​apache2/​sites-avalaible/​default /​etc/​apache2/​sites-avalaible/​site-2 
 +</​code>​ 
 + 
 +=== Pour Apache2.4 dans Jessie === 
 +<code root> 
 +cp /​etc/​apache2/​sites-avalaible/​default /​etc/​apache2/​sites-avalaible/​site-1.conf</​code>​ 
 +<code root>cp /​etc/​apache2/​sites-avalaible/​default /​etc/​apache2/​sites-avalaible/​site-2.conf
 </​code>​ </​code>​
-Puis on refait la même chose pour le site-2 ​ 
  
 ==== Contenu du fichier de vhost ==== ==== Contenu du fichier de vhost ====
-Dans votre éditeur de texte favori (pas un traitement texte attention !) ouvrez le fichier site-1 \\ 
-Faisons un rapide tour d'​horizons des sections qui nous intéressent:​ 
- 
-<​code><​VirtualHost *:80> 
- 
  
 +Dans votre éditeur de texte favori (pas un traitement texte attention !) ouvrez le fichier site-1 (ou site-1.conf sous Jessie\\
 +Faisons un rapide tour d'​horizon des sections qui nous intéressent:​
 +<file apache site-1 ou site-1.conf>​
 +<​VirtualHost *:80>
         ServerAdmin webmaster@localhost  ​         ServerAdmin webmaster@localhost  ​
  
Ligne 80: Ligne 106:
  
 </​VirtualHost>​ </​VirtualHost>​
-</code>+</file> 
 + 
 + 
 +  * ''<​VirtualHost *:​80>''​ et ''</​VirtualHost>'':​ Signalent le début et la fin de la section du vhost, en écoute pour toutes les interfaces/​adresses IP (*) sur le port **80**. 
 +  * ''​ServerAdmin webmaster@localhost'' ​ : adresse mail où envoyer les messages d'​erreur. Devra donc être remplacée par la vôtre 
 +  * ''​ServerName www.blablabla.xxx''​ : Nom utilisé par le vhost, remplacez-le par le nom de votre site (ici **site-1**) 
 +  * ''​ServerAlias site-1.xxx*.site-1.xxx''​ : ServerAlias définie les autres sous domaines pour lesquels le vhost répondra. 
 +  * ''​DocumentRoot /​var/​www/​htdocs''​ : Répertoire de stockage du site (sa racine). Vous devrez donc modifier cette directive pour qu'​elle pointe sur votre racine (ex: ''/​home/​www/​site-1''​ ) 
 +  * ''​DirectoryIndex ​ index.php''​ : En l'​absence de page spécifique demandée par l'​internaute,​ c'est cette page que sera affichée, c'est donc en quelque sorte votre page d'​accueil. A modifier donc si votre page d'​accueil porte un nom différent (''​default.html'',​ ''​accueil.php'',​ etc.)
  
-  * **//<VirtualHost *:80>//** et **//</​VirtualHost>//​**:​ Signale le début et la fin de la section du vhost, en écoute ​pour toute les ip (*) sur le port :80 +<note>Voila pour les directives qui nous préoccupent.
-  * **//​ServerAdmin //** //​webmaster@localhost// ​ : adresse mail où envoyer les messages d'​erreur. Devra donc être remplacée par la vôtre +
-  * **//​ServerName //** //​www.blablabla.xxx // : Nom utilisé par le vhost, remplacez le par le nom de votre site (ici site-1) +
-  * **//​ServerAlias //** //​site-1.xxx*.site-1.xxx // :​ServerAlias définie les autres sous domaines pour lesquels le serveur répondra. +
-  * **//​DocumentRoot//​** // /​var/​www/​htdocs // : Répertoire de stockage du site (sa racine). Vous devrez donc modifier cette directive pour qu'​elle pointe sur votre racine (ex: /​home/​www/​site-1 ) +
-  * **//​DirectoryIndex//​** ​ //index.php // : En l'​absence de page spécifique demandée par l'​internaute,​ c'est cette page que sera affichée, c'est donc en quelque sorte votre page d'​accueil. A modifier donc si votre page d'​accueil porte un nom différent (default.htm,​ acceuil.php etc...)+
  
-<​note>​Voila pour les directives qui nous préoccupent. \\ 
 Comme vous le constatez vous même, il en reste d'​autre que je n'ai pas détaillées,​ mais qui sont importantes notamment pour la sécurité. Je vous invite donc à consulter cette page pour savoir plus : http://​doc.ubuntu-fr.org/​apache2</​note>​ Comme vous le constatez vous même, il en reste d'​autre que je n'ai pas détaillées,​ mais qui sont importantes notamment pour la sécurité. Je vous invite donc à consulter cette page pour savoir plus : http://​doc.ubuntu-fr.org/​apache2</​note>​
  
 ==== Fichier vhost adapté ==== ==== Fichier vhost adapté ====
 Voyons voir a quoi pourrait ressembler notre fichier une fois adapté à nos besoins: Voyons voir a quoi pourrait ressembler notre fichier une fois adapté à nos besoins:
-<code>+ 
 +=== Pour Apache2.2 dans Wheezy === 
 +<file apache site-1>
 <​VirtualHost *:80> <​VirtualHost *:80>
         ServerAdmin MonMail@gmail.com         ServerAdmin MonMail@gmail.com
         ServerName ​     www.site-1.fr         ServerName ​     www.site-1.fr
-        ServerAlias ​   site-1.fr *.site-1.fr+        ServerAlias ​    ​site-1.fr 
 +        ServerAlias ​    *.site-1.fr
  
         DocumentRoot /​home/​www/​site-1 ​           DocumentRoot /​home/​www/​site-1 ​  
Ligne 114: Ligne 145:
         </​Directory>​         </​Directory>​
  
-        ​ScriptAlias ​/cgi-bin/ /usr/lib/cgi-bin+        ​ErrorLog ​/home/​www/​apache_log/​error_site-1.log 
-        <Directory "/usr/lib/cgi-bin">+ 
 +        # Possible values include: debug, info, notice, warn, error, crit, 
 +        # alert, emerg. 
 +        LogLevel warn 
 + 
 +        CustomLog ​/home/www/apache_log/access_site-1.log combined 
 + 
 +</VirtualHost>​ 
 +</file> 
 + 
 + 
 +=== Pour Apache2.4 dans Jessie === 
 +<file apache site-1.conf>​ 
 +<​VirtualHost *:80> 
 +        ServerAdmin MonMail@gmail.com 
 +        ServerName ​     www.site-1.fr 
 +        ServerAlias ​    ​site-1.fr 
 +        ServerAlias ​    ​*.site-1.fr 
 + 
 +        DocumentRoot ​/home/www/site-1    
 +                DirectoryIndex ​ index.php 
 +        <​Directory /> 
 +                Options FollowSymLinks
                 AllowOverride None                 AllowOverride None
-                Options +ExecCGI ​-MultiViews ​+SymLinksIfOwnerMatch +        </​Directory>​ 
-                ​Order allow,deny + 
-                ​Allow from all+        <​Directory /​home/​www/​site-1> 
 +                Options Indexes FollowSymLinks ​MultiViews 
 +                ​AllowOverride None 
 +                ​Require ​all granted
         </​Directory>​         </​Directory>​
  
Ligne 130: Ligne 186:
         CustomLog /​home/​www/​apache_log/​access_site-1.log combined         CustomLog /​home/​www/​apache_log/​access_site-1.log combined
  
-    Alias /doc/ "/​usr/​share/​doc/"​ +</VirtualHost
-    ​<Directory "/usr/​share/​doc/"​+</file> 
-        ​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>​ 
-</​code>​ 
 Renouveler les opérations pour créer un fichier de vhost pour site-2 Renouveler les opérations pour créer un fichier de vhost pour site-2
  
 ==== Activation/​Désactivation des sites ==== ==== Activation/​Désactivation des sites ====
-Une fois les fichiers de vhost créés, il reste les activer pour qu'​Apache2 les prennent ​en compte. ​\\ +Une fois les fichiers de vhost créés, il reste à les activer pour qu'​Apache2 les prenne ​en compte. 
-Ce mecanisme ​permet d'​avoir tout les fichiers de vhosts que l'on veut et de n'​activer que ceux nécessaires. ​\\  ​+ 
 +Ce mécanisme ​permet d'​avoir tout les fichiers de vhosts que l'on veut et de n'​activer que ceux nécessaires.
  
 **Deux méthodes possible:** \\ **Deux méthodes possible:** \\
   * //Méthode Classique://​ Création/​suppresion d'un lien symbolique dans ''/​etc/​apache2/​sites-enable''​ pointant vers''/​etc/​apache2/​sites-avalaible/​site-1''​   * //Méthode Classique://​ Création/​suppresion d'un lien symbolique dans ''/​etc/​apache2/​sites-enable''​ pointant vers''/​etc/​apache2/​sites-avalaible/​site-1''​
-<​code>​#ln -s /​etc/​apache2/​sites-avalaible/​site-1 /​etc/​apache2/​sites-enable+<​code ​root>ln -s /​etc/​apache2/​sites-avalaible/​site-1 /​etc/​apache2/​sites-enable
 </​code>​ </​code>​
   * //Méthode Debian :// les Développeurs Debian, qui font bien les choses (sinon, ils ne seraient pas DD !), ont mis en place un outil très simple:   * //Méthode Debian :// les Développeurs Debian, qui font bien les choses (sinon, ils ne seraient pas DD !), ont mis en place un outil très simple:
-<​code>​a2ensite site-1</​code> ​+<​code ​root>​a2ensite site-1</​code> ​
 ...et comme ils ne font pas les choses a moitié, ils ont aussi prévu la désactivation ...et comme ils ne font pas les choses a moitié, ils ont aussi prévu la désactivation
-<​code>​a2dissite site-1</​code>​+<​code ​root>​a2dissite site-1</​code>​
  
-===== Création du fichier de configuration des vhost ===== 
-   * Placez vous dans le répertoire ''/​etc/​apache2/​conf.d'' ​ \\ 
-Tout ce qui est dans ce répertoire est lu au démarrage d'​Apache2 
-<​code>#​ cd /​etc/​apache2/​conf.d </​code> ​ 
-  * Créez un fichier virtual-host.conf 
-<​code>#​ touch virtual-host.conf </​code>​ 
-Puis remplissez le comme suit (en adaptant a votre cas biensur) 
-<​code>​Alias /site-1 /​home/​www/​site-1 
-Alias /site-2 /​home/​www/​site-2 
-</​code>​ 
 ===== Adaptation du fichier /etc/hosts ===== ===== Adaptation du fichier /etc/hosts =====
-Éditez votre fichier ''/​etc/​hosts''​ et modifiez le comme suit pour que votre machine fasse le rapport entre vos vhost et le localhost ​\\ +Éditez votre fichier ''/​etc/​hosts''​ et modifiez le comme suit pour que votre machine fasse le rapport entre vos vhost et le localhost.
-Remplacer le 192.168.10.100 par l'IP de votre machine+
  
-<​code>​ +<​code ​text /etc/hosts
-127.0.0.1 ​      ​localhost ​site-1 site-2 +127.0.0.1 ​      ​localhost 
-127.0.0.1 ​      NomDeMachine.MonDomaine.org ​  ​NomDeMachine +127.0.0.1 ​      ​site-1 
-192.168.10.100  ​site-1 +127.0.0.1 ​      site-2
-192.168.10.100 ​ site-2 +
-127.0.0.1 ​  ​+
 </​code> ​   ​ </​code> ​   ​
 ===== Relancer le serveur apache2 et tester===== ===== Relancer le serveur apache2 et tester=====
Ligne 181: Ligne 218:
  
 Voir : [[:​doc:​systeme:​invoke-rc.d]] Voir : [[:​doc:​systeme:​invoke-rc.d]]
-<​code ​bash> +<​code ​root>service ​apache2 restart</​code>​
-# invoke-rc.d ​apache2 restart</​code>​+
  
 ==== Testez vos sites ==== ==== Testez vos sites ====
 Ouvrez votre navigateur et testez en tapant dans la barre d'​adresse:​ \\ Ouvrez votre navigateur et testez en tapant dans la barre d'​adresse:​ \\
-  * ''​localhost/site-1.fr'' ​et/ou ''​localhost/site-2.fr''​+  * ''​http://site-1/'' ​ ​puis ​''​http://site-2/''​ 
 + 
 +Vous devriez voir apparaître les pages d'​accueil des site-1 et site-2. 
 + 
 +==== Astuce - Apache en local ==== 
 + 
 +Dans le cas d'une utilisation du serveur à des fins de test ou d'un développement en local, il peut-être pratique de pouvoir modifier tous les fichiers de son site sans s'​empêtrer avec les problèmes de droits Root/User. \\ 
 +Pour cela on crée un [[doc:​systeme:​ln|lien symbolique]] depuis le répertoire du serveur vers le répertoire de son dossier personnel. 
 + 
 +Par exemple on place les fichiers de site-1 dans : **/​home/​utilisateur/​dev/​site-1**,​ puis on crée un lien symbolique comme ceci : 
 +<code root> ln -s /​home/​utilisateur/​dev/​site-1 /​var/​www/​site-1</​code>​
  
-Puis +== Liens ==
  
-  ​ ''​192.168.10.100/​site-1.fr''​ et/ou ''​192.168.10.100/site-2.fr''​+Pour approfondir les hôtes virtuels sur un serveur apache : 
 +  ​http://doc.ubuntu-fr.org/tutoriel/​virtualhosts_avec_apache2
  
-Vous devriez voir apparaitre à chaque test la page d'​accueil des site-1 et site-2 +Mettre ​en place une redirection avec apache : 
-===== A propos de ce tutoriel ===== +  * [[:​doc:​reseau:​apache2:​redirection|La redirection d'URL pour les débutants]]
-Comme dit en préambule, il s'agit là de la mise en forme des quelques note que j'ai prise au cours de mes tests. \\ +
-Je ne suis pas un spécialiste de la chose et ce document peut surement être amélioré et contient peut-être (surement ?) des erreurs et des approximations. \\ +
-Si tel est la cas, n'hésitez pas à les signaler sur le forum de Debian-facile et à les corriger si vous êtes rédacteur. \\ +
-Le wiki est fait pour cela 8-)+
  
-Les remarque peuvent être faites dans ce topic : http://​www.debian-facile.org/​forum/​viewtopic.php?​id=3659 
doc/reseau/apache2/multisite.txt · Dernière modification: 02/06/2023 23:31 par lagrenouille

Pied de page des forums

Propulsé par FluxBB