« LINUX:HTTP » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 40 : | Ligne 40 : | ||
Nous n'allons pas utiliser l'arborescence "/var/www" dont nous désactiverons l'accès. Nous préférons placer les sources de nos sites sur un autre disque non soumis au trafic du système. Nous nommerons ce répertoire lié à un disque "/web" dans les exemples suivants. On peut aussi mettre les documents annexes plus gourmands (images, vidéo, PDF,...) sur un disque à part plus gros. | Nous n'allons pas utiliser l'arborescence "/var/www" dont nous désactiverons l'accès. Nous préférons placer les sources de nos sites sur un autre disque non soumis au trafic du système. Nous nommerons ce répertoire lié à un disque "/web" dans les exemples suivants. On peut aussi mettre les documents annexes plus gourmands (images, vidéo, PDF,...) sur un disque à part plus gros. | ||
Nous n'utiliserons pas de CGI. | Nous n'utiliserons pas de CGI personnel. | ||
=[[LINUX:HTTP - httpd.conf|Fichier de paramètres de base : httpd.conf]]= | |||
Par défaut, le fichier "/etc/httpd/conf/httpd.conf" constitue le point d'entrée du paramétrage d'Apache. | |||
=[[LINUX:HTTP - Paramétrage des modules|Paramétrage des modules]]= | |||
Le logiciel Apache est accompagné d'un grand nombre de modules qui chacun vient ajouter une fonctionnalité particulière. On peut en ajouter à la liste installée d'office. | |||
Chaque module peut être activé ou désactivé. Ce paramétrage se retrouve dans le répertoire "/etc/httpd/conf.modules.d". | |||
Version du 5 mai 2025 à 16:40
→ retour au menu du serveur Web
But
Sous Linux, distribution Fedora, Apache est un serveur Web bien connu principalement pour les protocoles HTTP et HTTPS. Il existe bien sûr d'autres programmes de serveur Web. Pour le volet sécurité, les certificats sont nécessaires; voyez l'article sur la Sécurité via les certificats.
Installation
Sous Fedora, les paquets suivants sont à installer:
- httpd : Apache
- mod_ssl : le module SSL pour le protocole HTTPS
- mod_http2 : activation de la couche application HTTP/2, plus performante et sécurisée qu'HTTP/1
avec les commandes:
dnf install httpd dnf install mod_ssl dnf install mod_http2
Structure des fichiers de configuration
Les paramètres de configuration d'Apache se trouvent sous le répertoire "/etc/httpd" dans divers sous-répertoires.
- le sous-répertoire "conf" contient le fichier de paramètres de base "httpd.conf"; il contient aussi le fichier "magic" appelé par le précédent.
- le sous-répertoire "conf.modules.d" contient les fichiers d'activation des nombreux modules d'Apache"; il suffit de commenter (mettre le caractère "#") devant la ligne correspondante pour désactiver le module. Ils sont appelés par le fichier "/etc/httpd/conf/httpd.conf".
- le sous-répertoire "conf.d" contient les fichiers de paramètres de fonctionnalités générales tels SSL ou PHP. Il contient aussi les fichiers de paramètres des différentes applications Web de vos sites. Ils sont appelés par le fichier "/etc/httpd/conf/httpd.conf".
Ce dernier sous-répertoire "conf.d" est soumis aux mises à jour. Or il y a des fonctionnalités que l'on ne désire pas activer tel celle du fichier "welcome.conf"; si on l'élimine, il sera à nouveau recréé suite à la mise à jour suivante. Dans un soucis d'organisation et de clarté, nous créons une série de sous-répertoires:
- un pour les configurations communes nommé "conf.commun.d"
- divers autres par domaines ou groupe de domaines nommés par Apache de "vhosts" de format "conf.<vhosts>.d" ou "conf.<groupe>.d".
Ces différents sous-répertoires seront appelés par le fichier "/etc/httpd/conf/httpd.conf" et le sous-répertoire "conf.d" en sera éliminé. On reclasse et modifie selon nos besoins le contenu de "conf.d" dans les autres et nous en créons de nouveaux.
Ces inclusions peuvent être imbriquées.
Structure des répertoires des sites
Par défaut, le répertoire "/var/www/html" est le répertoire où on met les scripts de nos sites et le répertoire "/var/www/cgi-bin" contient les CGI.
Par contre, les applications Web qui viennent avec la distribution sont habituellement placée sous le répertoire "/usr/share" dans un répertoire portant le nom de l'application.
Nous n'allons pas utiliser l'arborescence "/var/www" dont nous désactiverons l'accès. Nous préférons placer les sources de nos sites sur un autre disque non soumis au trafic du système. Nous nommerons ce répertoire lié à un disque "/web" dans les exemples suivants. On peut aussi mettre les documents annexes plus gourmands (images, vidéo, PDF,...) sur un disque à part plus gros.
Nous n'utiliserons pas de CGI personnel.
Fichier de paramètres de base : httpd.conf
Par défaut, le fichier "/etc/httpd/conf/httpd.conf" constitue le point d'entrée du paramétrage d'Apache.
Paramétrage des modules
Le logiciel Apache est accompagné d'un grand nombre de modules qui chacun vient ajouter une fonctionnalité particulière. On peut en ajouter à la liste installée d'office.
Chaque module peut être activé ou désactivé. Ce paramétrage se retrouve dans le répertoire "/etc/httpd/conf.modules.d".
Test de configuration
Il est important de tester la syntaxe de nos fichiers de configuration avant toute mise en application car s'il y a une erreur, notre serveur Web sera en erreur et sera donc inaccessible. Tant que le serveur Apache n'est pas redémarré, c'est toujours l'ancienne configuration qui est active.
La commande suivante permet ce test:
httpd -t
Si tout va bien vous recevrez un message laconique suivant:
Syntax OK
Cette commande permet d'autres actions telle la commande suivante qui affiche nos différents "Vhosts":
httpd -D DUMP_VHOSTS
D'autres peuvent vous aider comme:
httpd -D DUMP_MODULES
qui fournit la liste des modules chargés ou
httpd -D DUMP_INCLUDES
pour visionner la hiérarchie des inclusions successives des fichiers de paramètres.
Voyez l'aide pour plus d'options:
httpd -h
Activation et lancement du service
Le service à lancer est "httpd.service". La première commande active le service pour qu'à chaque démarrage du serveur, le service se lance. La seconde lance directement le service. La troisième relance le service.
systemctl enable httpd.service systemctl start httpd.service systemctl restart httpd.service
Apache sous Ubuntu
Il m'est arrivé d'utiliser Apache sous Ubuntu et de rencontrer quelques problèmes.
→ retour au menu du serveur Web