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:apache2.4 [03/11/2016 13:56] winproof [Introduction] |
doc:reseau:apache2:apache2.4 [01/12/2016 14:13] winproof [Pour aller plus loin] |
||
---|---|---|---|
Ligne 191: | Ligne 191: | ||
</note> | </note> | ||
- | Voila un petit résumé de la façon (en gros) donc apache vous sert un site, mettons le site www.test.com: | + | Voila un petit résumé de la façon (en gros) donc apache vous sert un site, mettons le site www.debian.com: |
- | 1) vous allez sur http://www.test.com. | + | 1) vous tapez dans votre navigateur l'adresse http://www.debian.com |
- | 2) votre navigateur demande au DNS l’adresse IP du domaine test.com, puis envoi une requête HTTP a l'adresse IP correspondante. | + | 2) votre navigateur demande au DNS l’adresse IP du domaine debian.com, puis envoi une requête HTTP a l'adresse IP correspondante. |
- | 3) apache reçoit la requête, vérifie si il existe un lien symbolique pour www.test.com dans /etc/apache2/sites-enabled/,si oui il passe au traitement du fichier correspondant,sinon il affiche une erreur 404 (si pas de site par défaut) ou vous affiche le site par défaut. | + | 3) apache reçoit la requête, vérifie si le site demandé existe (lien vers le vhost dans /etc/apache2/sites-enable/),si oui il passe au traitement du fichier correspondant,sinon il vous affiche le site par défaut (ou une erreur 404 si pas de site par défaut). |
+ | <note tip>C'est a ce niveau qu’intervient la notion de VirtualHost (voir plus bas)</note> | ||
- | 4) apache traite le fichier /etc/apache2/sites-availables/www.test.com, vérifie les droits, l’existence des fichiers/dossiers indiqués:\\ | + | 4) apache traite le fichier /etc/apache2/sites-availables/debian.com.conf, vérifie les droits, l’existence des fichiers/dossiers indiqués:\\ |
si quelque chose bloque, vous aurez une erreur. (4xx si le pb vient de vous, 5xx si c'est le serveur qui plante) | si quelque chose bloque, vous aurez une erreur. (4xx si le pb vient de vous, 5xx si c'est le serveur qui plante) | ||
Ligne 222: | Ligne 223: | ||
Donc pour commencer, allez donc ajouter dans votre fichier hosts (/etc/hosts sous debian, C:\Windows\System32\drivers\etc\hosts sous windows 7) la ligne qui va bien. | Donc pour commencer, allez donc ajouter dans votre fichier hosts (/etc/hosts sous debian, C:\Windows\System32\drivers\etc\hosts sous windows 7) la ligne qui va bien. | ||
- | <note important>Si vous créez votre site dans /var/www/html, il s'agit alors d'un sous-domaine du site par défaut.\\ | + | <note warning>Dans beaucoup de tuto apache2 pour debian, il est indiqué de créer son site dans **/var/www/html/** et de créer le vhost.\\ |
- | donc pour y accéder, nul besoin d'un fichier vhost ni de modifier le fichier hosts, il suffit d'utiliser http://192.168.x.x/monsite.com\\ | + | Mais si vous créez votre site dans /var/www/html, il s'agit alors d'un sous-domaine du site par défaut, et pas d'un vhost!.\\ |
- | le problème de cette configuration est que le répertoire du site monsite.com étant sous /var/www/html/, le site monsite.com hérite des autorisations du site par défaut.</note> | + | |
+ | Ce qui a pour conséquence qu'en activant le vhost, votre site est bien accessible par http://192.168.x.x/monsite.com, ce qui semble indiquer que tout fonctionne, or c'est faux!\\ | ||
+ | en effet, désactivez le vhost, et vous verrez que votre site http://192.168.x.x/monsite.com est toujours fonctionnel.\\ | ||
+ | car en fait, avoir mis le site sous /var/www/html/ fait qu'il est servi par le vhost par defaut (000-default.conf) et pas par le vhost monsite.com.conf. | ||
+ | Du coup toutes les éventuelles directives de sécurité que vous auriez mis dans le vhost monsite.com.conf ne sont pas prise en compte, puisque le vhost lui-même n'est pas utilisé.</note> | ||
+ | |||
+ | <note tip>Si vous voulez vraiment faire des test sans vhost ni toucher au fichier host, ou si vous n'avez qu'un seul site 8-), c'est une solution.\\ | ||
+ | donc pour y accéder, il suffit d'utiliser http://192.168.x.x/monsite.com.\\ | ||
+ | le problème de cette configuration est que le répertoire du site monsite.com étant sous /var/www/html/, le site monsite.com hérite des autorisations du site par défaut.\\ | ||
+ | on peut contourner ce problème, en définissant dans le vhost par défaut une directive Alias:\\ | ||
+ | <code>Alias /monsite.com /var/www/monsite.com</code> --> dit a apache que pour un accès à http://192.168.x.x/monsite.com c'est le repertoire /var/www/monsite.com qui doit étre servi, et pas le repertoire /var/www/html/monsite.com.\\ | ||
+ | cela permet, en définissant une section <Directory> dans le vhost 000-default.conf, de donner a son site d'autres directives de sécurité que celle définies pour le site par défaut.\\ | ||
+ | mais c'est pas franchement propre comme façon de faire :-(. </note> | ||
* On crée un dossier dans /var/www/ : | * On crée un dossier dans /var/www/ : | ||
Par exemple "monsite.com" qui va pouvoir accueillir le site internet. | Par exemple "monsite.com" qui va pouvoir accueillir le site internet. | ||
Ligne 284: | Ligne 298: | ||
La mise en place d'un Virtualhost est réussie !</code> | La mise en place d'un Virtualhost est réussie !</code> | ||
+ | |||
+ | Ça ne fonctionne pas? vérifiez votre fichier hosts ! | ||
Bon, il y a encore un petit problème d'encodage :-D | Bon, il y a encore un petit problème d'encodage :-D | ||
Ligne 450: | Ligne 466: | ||
Cette requête contient (entre autre) un champ "Host" (dans l’en-tête de la requête) correspondant au nom du serveur demandé.\\ | Cette requête contient (entre autre) un champ "Host" (dans l’en-tête de la requête) correspondant au nom du serveur demandé.\\ | ||
+ | ce champ est rempli a partir de l'URL que vous avez tapé, par exemple:\\ | ||
+ | |||
+ | %%URL http://www.debian.com --> champ host rempli avec www.debian.com%%\\ | ||
+ | %%URL http://192.168.x.x --> champ host rempli avec 192.168.x.x%%\\ | ||
+ | |||
https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol#/media/File:Requ%C3%AAte_HTTP.png\\ | https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol#/media/File:Requ%C3%AAte_HTTP.png\\ | ||
https://openclassrooms.com/courses/les-requetes-http | https://openclassrooms.com/courses/les-requetes-http | ||
c'est la valeur de ce champ qu'apache va utiliser pour savoir quel site servir. | c'est la valeur de ce champ qu'apache va utiliser pour savoir quel site servir. | ||
- | Apache va parcourir ses différents fichiers vhost pour rechercher les directives "ServerName" et "ServerAlias" et servir le répertoire correspondant (défini par "DocumentRoot" dans le vhost) | + | Apache va parcourir ses différents fichiers vhost pour rechercher les directives "ServerName" et "ServerAlias" et servir le répertoire correspondant (défini par "DocumentRoot" dans le vhost). |
<note important>Apache lit ses fichiers vhost dans l'ordre alphabétique, et sert le premier si aucune correspondance n'a été trouvée dans les autres vhost. | <note important>Apache lit ses fichiers vhost dans l'ordre alphabétique, et sert le premier si aucune correspondance n'a été trouvée dans les autres vhost. | ||
- | C'est pour cela que le vhost par défaut est nommé 000-default.conf, pour qu'il soit en premier dans l'ordre alphabétique. | + | C'est pour cela que le vhost par défaut est nommé 000-default.conf, pour qu'il soit en premier dans l'ordre alphabétique.\\ |
- | cela veut dire que si vous désactivez le vhost par defaut, le suivant dans l'ordre alphabétique deviendra le site par défaut. </note> | + | **cela veut dire que si vous désactivez le vhost par defaut, le suivant dans l'ordre alphabétique deviendra le site par défaut.** </note> |
- | Exemple de fonctionnement: | + | <note tip>Si vous tentez de désactiver le vhost par défaut (via a2dissite 000-default.conf) sans avoir un autre vhost, apache continuera a vous servir le contenu de /var/www/html, c'est un comportement propre a apache 2.4, mis en place pour des raisons de sécurité.\\ |
- | + | si vous voulez vraiment désactiver le vhost par defaut (et donc avoir une erreur 404 au lieu de la page "it's work") il faut supprimer le dossier /var/www/html </note> | |
- | vous venez d'installer apache ,vous tentez d’accéder a http://192.168.x.x, le champ "host" de votre requête HTTP contient 192.168.x.x | + | |
+ | Du coup, si vous avez besoin d’héberger plusieurs sites, c'est simple:\\ | ||
+ | dans votre DNS, faite pointer chaque site sur l'IP de votre serveur.\\ | ||
+ | puis au niveau apache, un fichier vhost par site pour indiquer a apache quel dossier servir pour chaque site. | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== Pour aller plus loin ====== | ||
+ | |||
+ | Voila, vous avez les bases pour utiliser apache en mode "test" sur une VM. | ||
+ | |||
+ | Si vous voulez passer votre site en prod, il y a beaucoup plus de choses a régler. | ||
+ | |||
+ | renseignez-vous sur le SSL, la configuration d'un firewall, et la sécurisation d'un serveur apache. | ||
+ | |||
+ | <note tip>Je vous conseille de lire le tuto d'hypathie, même si il n'est plus entièrement a jour, il est pleins de bon conseils, et trouver ce qui a changé en version apache 2.4 ne pourra que vous aider a comprendre le fonctionnement du bestiau 8-)\\ | ||
+ | https://debian-facile.org/doc:reseau:apache2</note> | ||
+ | |||
+ | Bon courage!:-D |