Différences
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 | ||
apache2 [Le 20/07/2018, 17:52] krodelabestiole update doc virtualhosts |
apache2 [Le 02/11/2018, 00:39] krodelabestiole [Permissions] syntaxe plus simple (je crois) |
||
---|---|---|---|
Ligne 27: | Ligne 27: | ||
===== Lancement ===== | ===== Lancement ===== | ||
- | Apache 2 se lance par défaut dès son installation, et se relance automatiquement à chaque démarrage. | + | Apache 2 se lance par défaut dès son installation, et se relance automatiquement à chaque démarrage. C'est l'idéal pour un serveur qui doit continuellement fournir du contenu en ligne, mais pour un serveur de test (on dit de //développement//) on peut éventuellement désirer un comportement différent. |
==== Empêcher Apache de démarrer automatiquement ==== | ==== Empêcher Apache de démarrer automatiquement ==== | ||
Ligne 143: | Ligne 143: | ||
^ directive ^ description ^ | ^ directive ^ description ^ | ||
- | | <file><VirtualHost *:80></file> | On déclare l'hôte virtuel, il doit répondre à toutes les adresses IP qui s'adressent à lui (*) sur le port 80. On peut ici éventuellement spécifier une adresse IP unique à laquelle répondra Apache pour un hôte virtuel donné (dans le cas ou le serveur possède plusieurs adresses IP), ou choisir d'écouter un port exotique. | | + | | <file><VirtualHost *:80></file> | On déclare l'hôte virtuel. Il doit répondre aux requêtes qui s'adressent à toutes les adresses IP (''*'') du serveur sur le port 80. On peut ici éventuellement spécifier une adresse IP unique à laquelle répondra Apache pour un hôte virtuel donné (dans le cas ou le serveur possède plusieurs adresses IP), ou choisir de répondre au port 443 (pour [[#HTTPS]]) ou à un port exotique (à condition de [[#configuration_des_ports_d_ecoute|l'écouter]]). | |
| <file>ServerAdmin webmaster@localhost</file> | C'est le courriel de l'administrateur système. Cette directive n'est ni très utile, ni indispensable. | | | <file>ServerAdmin webmaster@localhost</file> | C'est le courriel de l'administrateur système. Cette directive n'est ni très utile, ni indispensable. | | ||
| <file>DocumentRoot /var/www/html</file> | C'est le chemin absolu vers l'emplacement local (sur l'espace disque du serveur) qui sera la racine de l'hôte. Apache recherche en premier un fichier ''index.html'' ou ''index.php'' à afficher par défaut à l'emplacement spécifié. On constate que c'est donc bien cet hôte virtuel qui affiche le message //It Works!// contenu dans le fichier ''/var/www/html/index.html''. | | | <file>DocumentRoot /var/www/html</file> | C'est le chemin absolu vers l'emplacement local (sur l'espace disque du serveur) qui sera la racine de l'hôte. Apache recherche en premier un fichier ''index.html'' ou ''index.php'' à afficher par défaut à l'emplacement spécifié. On constate que c'est donc bien cet hôte virtuel qui affiche le message //It Works!// contenu dans le fichier ''/var/www/html/index.html''. | | ||
Ligne 157: | Ligne 157: | ||
==== Création d'hôtes virtuels ==== | ==== Création d'hôtes virtuels ==== | ||
- | <note>Pour en savoir plus sur les hôtes virtuels d'Apache, référez-vous à la [[http://httpd.apache.org/docs/current/mod/core.html#virtualhost|documentation officielle]] et à ses [[https://httpd.apache.org/docs/current/fr/vhosts/examples.html|exemples]].</note> | + | <note>Pour en savoir plus sur les hôtes virtuels d'Apache, référez-vous à la [[http://httpd.apache.org/docs/current/mod/core.html#virtualhost|documentation officielle]] et à ses [[https://httpd.apache.org/docs/current/fr/vhosts/examples.html|exemples]]. |
+ | |||
+ | Vous trouverez également des exemples de création d'hôtes virtuels sous forme de tutoriels sur [[:tutoriel:lamp_repertoires_de_travail|cette page de la documentation.]]</note> | ||
Apache recommande de créer un fichier de configuration dans lequel est défini un hôte virtuel pour chaque site ou application web dans le répertoire ''/etc/apache2/sites-available/''. | Apache recommande de créer un fichier de configuration dans lequel est défini un hôte virtuel pour chaque site ou application web dans le répertoire ''/etc/apache2/sites-available/''. | ||
Ligne 197: | Ligne 199: | ||
<code>sudo systemctl reload apache2</code> | <code>sudo systemctl reload apache2</code> | ||
- | <note tip>On peut définir un hôte virtuel par un nom de domaine même sans avoir de nom de domaine enregistré chez un registrar.\\ | + | <note tip>On peut définir un hôte virtuel par un nom de domaine même sans avoir de nom de domaine enregistré chez un registrar. |
- | Il suffit de résoudre l'IP du serveur pour un domaine fictif pour le client. Cela se fait en [[:tutoriel:comment_modifier_un_fichier|éditant le fichier]] ''/etc/hosts'' côté client avec les [[:sudo|droits d'administration]] pour y ajouter la ligne : | + | |
+ | Il faut dans ce cas résoudre l'IP du serveur pour un domaine fictif côté client. Cela se fait en [[:tutoriel:comment_modifier_un_fichier|éditant le fichier]] ''/etc/hosts'' côté client avec les [[:sudo|droits d'administration]] pour y ajouter la ligne : | ||
<file - hosts>127.0.0.1 example</file> | <file - hosts>127.0.0.1 example</file> | ||
- | Avec la directive ''ServerName example'', l'hôte virtuel sera accessible depuis ce client à l'adresse [[http://example/]]. | + | où ''127.0.0.1'' est l'adresse IP du serveur (locale dans ce cas) et ''example'' est le nom de domaine choisi.\\ |
+ | (Voir la [[:hosts|documentation concernant le fichier hosts]]) | ||
+ | |||
+ | Avec la directive ''ServerName example'' dans le //VirtualHost//, l'hôte virtuel sera accessible depuis ce client à l'adresse [[http://example/]]. | ||
Cela peut être très pratique en phase de développement sur une machine ou un réseau local, par exemple.</note> | Cela peut être très pratique en phase de développement sur une machine ou un réseau local, par exemple.</note> | ||
Ligne 436: | Ligne 442: | ||
On change ensuite les [[:permissions]] du contenu de manière à ce que l'utilisateur puisse le lire et le modifier, mais qu'Apache (dans le groupe //www-data//) ne puisse que le lire. | On change ensuite les [[:permissions]] du contenu de manière à ce que l'utilisateur puisse le lire et le modifier, mais qu'Apache (dans le groupe //www-data//) ne puisse que le lire. | ||
- | On attribue donc les [[:droits]] 750 (rwx r-x ---) pour les répertoires, et 640 (rw- r-- ---) pour les fichiers : | + | On attribue donc les [[:droits]] ''rwx r-x ---'' (750) pour les répertoires, et ''rw- r-- ---'' (640) pour les fichiers : |
- | <code>sudo find /var/www/example -type d -exec chmod 750 {} \; | + | <code>chmod -R -rwx,u+rwX,g+rX /var/www/example</code> |
- | sudo find /var/www/example -type f -exec chmod 640 {} \;</code> | + | (pour rappel ''x'' concerne les répertoires et les fichiers tandis que ''X'' ne concerne que les répertoires - et autorise à les ouvrir) |
- | Si Apache doit pouvoir modifier du contenu (pour un répertoire d'upload par exemple), on ne modifie que la permission concernant le groupe (le second numéro), donc 770 (rwx rwx ---) pour les répertoires et 660 (rw- rw- ---) pour les fichiers : | + | Si Apache doit pouvoir modifier du contenu (pour un répertoire d'upload par exemple), on ne modifie que la permission concernant le groupe (le second numéro), donc ''rwx rwx ---'' (770) pour les répertoires et ''rw- rw- ---'' (660) pour les fichiers : |
- | <code>sudo find /var/www/example/upload -type d -exec chmod 770 {} \; | + | <code>chmod -R g+w /var/www/example/upload</code> |
- | sudo find /var/www/example/upload -type f -exec chmod 660 {} \;</code> | + | |
==== Fail2ban ==== | ==== Fail2ban ==== |