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 →
Ci-dessous, les différences entre deux révisions de la page.
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 [05/07/2014 17:08] captnfab [apache2 : serveur Web multi-site] |
doc:reseau:apache2:multisite [09/01/2016 13:47] milou [Déclaration des sites existants] |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
* Objet : Mettre en place un serveur apache2 hébergeant plusieurs sites | * Objet : Mettre en place un serveur apache2 hébergeant plusieurs sites | ||
- | * Niveau requis : {{tag>débutant}} | + | * 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 !// | * 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à !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
Ligne 8: | Ligne 8: | ||
* Création par [[user>freddec]] le 22/03/2011 | * Création par [[user>freddec]] le 22/03/2011 | ||
* Mis à jour par [[user>bundy]] le 25/10/2012 (sous squeeze) | * 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 !)) | * 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 !)) | ||
Ligne 13: | Ligne 15: | ||
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'Apache2 | + | - 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. | ||
Ligne 29: | Ligne 31: | ||
* Un serveur Apache 2 (+/- PHP, MySQL suivant le type de site à réaliser) | * Un serveur Apache 2 (+/- PHP, MySQL suivant le type de site à réaliser) | ||
- | <note info>**Pour ceux n'ayant pas de serveur LAMP installé : | + | <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> | <code root>apt-get install apache2 mysql-server libapache2-mod-php5 php5-mysql</code> | ||
- | Et voilà.</note> | + | Et voilà. |
- | * Au moins 2 sites a tester ! | + | </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===== | ||
Ligne 42: | Ligne 47: | ||
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 : | ||
+ | |||
+ | === Pour Apache2.2 dans Wheezy === | ||
<code root> | <code root> | ||
- | cp /etc/apache2/sites-avalaible/default /etc/apache2/sites-avalaible/site-1 | + | cp /etc/apache2/sites-avalaible/default /etc/apache2/sites-avalaible/site-1</code> |
- | cp /etc/apache2/sites-avalaible/default /etc/apache2/sites-avalaible/site-2 | + | <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> | ||
==== 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 \\ | + | 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'horizons des sections qui nous intéressent: | + | Faisons un rapide tour d'horizon des sections qui nous intéressent: |
- | + | <file apache site-1 ou site-1.conf> | |
- | <code xml><VirtualHost *:80> | + | <VirtualHost *:80> |
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
Ligne 93: | 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 toute les interfaces/adresses IP (*) sur le port **80**. | + | * ''<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 | * ''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**) | + | * ''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. | * ''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'' ) | * ''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'' ) | ||
Ligne 108: | Ligne 122: | ||
==== 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 xml> | + | |
+ | === Pour Apache2.2 dans Wheezy === | ||
+ | <file apache site-1> | ||
<VirtualHost *:80> | <VirtualHost *:80> | ||
ServerAdmin MonMail@gmail.com | ServerAdmin MonMail@gmail.com | ||
Ligne 138: | Ligne 154: | ||
</VirtualHost> | </VirtualHost> | ||
- | </code> | + | </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 | ||
+ | </Directory> | ||
+ | |||
+ | <Directory /home/www/site-1> | ||
+ | Options Indexes FollowSymLinks MultiViews | ||
+ | AllowOverride None | ||
+ | Require all granted | ||
+ | </Directory> | ||
+ | |||
+ | ErrorLog /home/www/apache_log/error_site-1.log | ||
+ | |||
+ | # 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> | ||
+ | |||
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 | ||
Ligne 171: | Ligne 222: | ||
==== 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: \\ | ||
- | * [[http://site-1/'' et/ou ''http://site-2/'' | + | * ''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> | ||
+ | |||
+ | == Liens == | ||
+ | |||
+ | Pour approfondir les hôtes virtuels sur un serveur apache : | ||
+ | * http://doc.ubuntu-fr.org/tutoriel/virtualhosts_avec_apache2 | ||
+ | |||
+ | Mettre en place une redirection avec apache : | ||
+ | * [[:doc:reseau:apache2:redirection|La redirection d'URL pour les débutants]] | ||
- | Vous devriez voir apparaître la page d'accueil des site-1 et site-2. |