« LINUX:HTTP » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 20 : Ligne 20 :


=Structure des fichiers de configuration=
=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.




Ligne 30 : Ligne 41 :


Nous n'utiliserons pas de CGI.
Nous n'utiliserons pas de CGI.





Version du 24 avril 2025 à 13:04


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 suivant.


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.





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