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
apache2 [Le 14/11/2019, 15:16]
78.114.163.218 [Configuration des ports d'écoute]
apache2 [Le 28/09/2020, 11:34]
62.102.224.250 [Autres commandes utiles]
Ligne 42: Ligne 42:
 Pour arrêter apache2 : Pour arrêter apache2 :
 <​code>​sudo systemctl stop apache2</​code>​ <​code>​sudo systemctl stop apache2</​code>​
 +
 +Pour arrêter apache2 complètement
 +<​code>​sudo service apache2 stop</​code>​
  
 Pour lancer apache2 : Pour lancer apache2 :
Ligne 72: Ligne 75:
   * Il envoie une requête HTTP avec la méthode GET à l'IP du serveur sur le port 80 (ou HTTPS sur le port 443) pour lui demander de retourner un contenu particulier.   * Il envoie une requête HTTP avec la méthode GET à l'IP du serveur sur le port 80 (ou HTTPS sur le port 443) pour lui demander de retourner un contenu particulier.
   * Le serveur HTTP reçoit la requête, et en fonction de divers paramètres (URL appelée, configuration du serveur, etc.), va chercher un contenu dans un fichier ou lance un script qui va générer un contenu.   * Le serveur HTTP reçoit la requête, et en fonction de divers paramètres (URL appelée, configuration du serveur, etc.), va chercher un contenu dans un fichier ou lance un script qui va générer un contenu.
-  * Le serveur renvoie ce contenu à l'IP du navigateur ​depuis le même port (80 ou 443).+  * Le serveur renvoie ce contenu à l'IP du navigateur.
   * Le navigateur traite le contenu et le rend accessible à l'​internaute (en l'​affichant à l'​écran par ex.).   * Le navigateur traite le contenu et le rend accessible à l'​internaute (en l'​affichant à l'​écran par ex.).
  
Ligne 116: Ligne 119:
  
 Sauf cas très particulier,​ il n'est pas nécessaire de toucher à cette configuration. Sauf cas très particulier,​ il n'est pas nécessaire de toucher à cette configuration.
 +
 +===== Hôtes virtuels =====
 +
 +Avec Apache, chaque site ou application web correspond en principe à un hôte virtuel (//​**[[https://​httpd.apache.org/​docs/​current/​fr/​vhosts/​examples.html|VirtualHost]]**//​ en anglais).
 +
 +Chaque hôte virtuel est défini par un fichier de configuration indépendant,​ qu'on trouve ou qu'on créé dans le répertoire ''/​etc/​apache2/​sites-available/''​.
 +
 ==== Par défaut ==== ==== Par défaut ====
  
Ligne 192: Ligne 202:
 <​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
 + 
 +On peut soit utiliser un sous-domaine de ''​localhost'',​ comme ''​example.localhost'',​ qui pointera directement sur la machine locale (et qui ne sera donc valable que sur la machine qui fait tourner Apache), soit créer un nouveau nom de domaine "​fictif"​.
  
 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 : 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 :
Ligne 201: Ligne 214:
 Avec la directive ''​ServerName example''​ dans le //​VirtualHost//,​ l'​hôte virtuel sera accessible depuis ce client à l'​adresse [[http://​example/​]]. 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>​
  
 ===== HTTPS ===== ===== HTTPS =====
Ligne 209: Ligne 223:
 Il n'est ni nécessaire,​ ni faisable de mettre en place HTTPS avec un certificat valide sur un serveur de développement local. Il n'est ni nécessaire,​ ni faisable de mettre en place HTTPS avec un certificat valide sur un serveur de développement local.
  
-Pour rendre disponible les sites de manière sécurisée via HTTPS avec des certificats valides, la solution la plus simple est d'​utiliser l'​outil **[[https://​certbot.eff.org/​|Cerbot]]** de [[https://​letsencrypt.org/​|Let'​s Encrypt]].+Pour rendre disponible les sites de manière sécurisée via HTTPS avec des certificats valides, la solution la plus simple est d'​utiliser l'​outil **[[https://​certbot.eff.org/​|Certbot]]** de [[https://​letsencrypt.org/​|Let'​s Encrypt]].
 <​note>​Vous trouverez une documentation plus détaillée à ce sujet sur [[:​tutoriel:​securiser_apache2_avec_ssl|cette page de la documentation]],​ mais nous verrons ici une méthode spécifique à Apache.</​note>​ <​note>​Vous trouverez une documentation plus détaillée à ce sujet sur [[:​tutoriel:​securiser_apache2_avec_ssl|cette page de la documentation]],​ mais nous verrons ici une méthode spécifique à Apache.</​note>​
  
Ligne 229: Ligne 243:
 === Installation de Certbot === === Installation de Certbot ===
  
-Pour installer Certbot, [[:​ppa#​ajout_d_un_ppa_a_vos_sources_logicielles|ajoutez le PPA]] officiel **ppa:​certbot/​certbot**,​ puis installez le paquet [[apt>python-certbot-apache]] : +Pour installer Certbot, [[:​ppa#​ajout_d_un_ppa_a_vos_sources_logicielles|ajoutez le PPA]] officiel **ppa:​certbot/​certbot**,​ puis installez le paquet [[apt>python3-certbot-apache]] : 
-<​code>​sudo apt install ​python-certbot-apache</​code>​+<​code>​sudo apt install ​python3-certbot-apache</​code>​
  
 === Utilisation de Certbot === === Utilisation de Certbot ===
Ligne 312: Ligne 326:
  
 <​file>​RewriteEngine on <​file>​RewriteEngine on
 +
 +RewriteRule ^page-([0-9]+)$ /​page.php?​id=$1 [L]
  
 # Lorsque l'on tape dans la barre d'​adresse www.example.com/​page-* c'est la page www.example.com/​page.php?​id=* qui s'​affiche # Lorsque l'on tape dans la barre d'​adresse www.example.com/​page-* c'est la page www.example.com/​page.php?​id=* qui s'​affiche
 # ^ et $ dans le bloc modèle signifient respectivement le début et la fin d'une ligne. # ^ et $ dans le bloc modèle signifient respectivement le début et la fin d'une ligne.
 # $1 est une variable qui récupère la valeur entre les premières parenthèses du bloc modèle # $1 est une variable qui récupère la valeur entre les premières parenthèses du bloc modèle
-# [L]=[last] signifie que si cette règle s'​applique on n'en cherche pas d'​autre +# [L]=[last] signifie que si cette règle s'​applique on n'en cherche pas d'​autre</​file>​
-RewriteRule ^page-([0-9]+)$ /​page.php?​id=$1 [L]</​file>​+
  
 <​note>​On peut écrire ces règles de réécriture dans une section //​[[#​hotes_virtuels|<​VirtualHost>​]]//​ ou  //​[[#​hotes_virtuels|<​Directory>​]]//​ (le comportement n'est pas le même), ou dans un fichier //​[[#​.htaccess]]//​.</​note>​ <​note>​On peut écrire ces règles de réécriture dans une section //​[[#​hotes_virtuels|<​VirtualHost>​]]//​ ou  //​[[#​hotes_virtuels|<​Directory>​]]//​ (le comportement n'est pas le même), ou dans un fichier //​[[#​.htaccess]]//​.</​note>​
  • apache2.txt
  • Dernière modification: Le 24/04/2024, 17:24
  • par krodelabestiole