Introduction à Apache HTTPD
Le paquet Apache HTTPD contient un
serveur HTTP open-source. C'est utile pour créer des sites Internet
d'Intranet locaux ou lancer d'immenses opérations de service
Internet.
This package is known to build and work properly using an LFS 12.1
platform.
Informations sur le paquet
-
Téléchargement (HTTP) : https://archive.apache.org/dist/httpd/httpd-2.4.58.tar.bz2
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 : 30377ec4d7fb8361e1d1f2ab3158b467
-
Taille du téléchargement : 7.1 Mo
-
Estimation de l'espace disque requis : 88 Mo
-
Estimation du temps de construction : 0,3 SBU (avec
parallélisme = 4)
Téléchargements supplémentaires
Dépendances de Apache HTTPD
Requises
Apr-Util-1.6.3 et pcre2-10.42
Facultatives
Brotli-1.1.0, Doxygen-1.10.0, jansson-2.14,
libxml2-2.12.5, Lua-5.4.6, Lynx-2.8.9rel.1 ou Links-2.29 ou
ELinks, nghttp2-1.59.0, OpenLDAP-2.6.7
(Apr-Util-1.6.3 doit être installé avec le
support ldap), rsync-3.2.7, Berkeley
DB (deprecated) et Distcache
Installation de Apache HTTPD
Pour des raisons de sécurité, l'exécution du serveur en tant
qu'utilisateur et groupe non privilégiés est fortement conseillée.
Créez le groupe et l'utilisateur suivant en utilisant les commandes
suivantes (en tant qu'utilisateur root
) :
groupadd -g 25 apache &&
useradd -c "Apache Server" -d /srv/www -g apache \
-s /bin/false -u 25 apache
Construisez et installez Apache
HTTPD en exécutant les commandes suivantes :
patch -Np1 -i ../httpd-2.4.58-blfs_layout-1.patch &&
sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in &&
sed -e '/HTTPD_ROOT/s:${ap_prefix}:/etc/httpd:' \
-e '/SERVER_CONFIG_FILE/s:${rel_sysconfdir}/::' \
-e '/AP_TYPES_CONFIG_FILE/s:${rel_sysconfdir}/::' \
-i configure &&
sed -e '/encoding.h/a # include <libxml/xmlstring.h>' \
-i modules/filters/mod_xml2enc.c &&
./configure --enable-authnz-fcgi \
--enable-layout=BLFS \
--enable-mods-shared="all cgi" \
--enable-mpms-shared=all \
--enable-suexec=shared \
--with-apr=/usr/bin/apr-1-config \
--with-apr-util=/usr/bin/apu-1-config \
--with-suexec-bin=/usr/lib/httpd/suexec \
--with-suexec-caller=apache \
--with-suexec-docroot=/srv/www \
--with-suexec-logfile=/var/log/httpd/suexec.log \
--with-suexec-uidmin=100 \
--with-suexec-userdir=public_html &&
make
Ce paquet n'a pas de suite de tests.
Maintenant, en tant qu'utilisateur root
:
make install &&
mv -v /usr/sbin/suexec /usr/lib/httpd/suexec &&
chgrp apache /usr/lib/httpd/suexec &&
chmod 4754 /usr/lib/httpd/suexec &&
chown -v -R apache:apache /srv/www
Explication des commandes
sed
'/dir.*CFG_PREFIX/s@^@#@'... : Force
l'utilitaire apxs à utiliser les
chemins absolus pour les modules quand les instructions le
demandent.
sed -e '/HTTPD_ROOT/s
... : corrige des chemins.
sed -e '/encoding.h/a
... : corrige la construction avec
libxml-2.12.x.
--enable-authnz-fcgi
:
construit les authentifications et les autorisations basées sur
FastCGI authorizer (module fast CGI mod_authnz_fcgi.so).
--enable-mods-shared="all
cgi"
: Les modules devraient être compilés et
utilisés comme objets partageables dynamiquement (Dynamic Shared
Objects, DSO) pour pouvoir être inclus et exclus du
serveur qui utilise les lignes de configuration au moment de
l'exécution
--enable-mpms-shared=all
: Ce
paramètre assure que tous les MPM (Multi Processing Modules) sont
constuit en tant qu'objets partagés dynamiques (DSO), pour que
l'utilisateur puisse choisir lequel utiliser à l'exécution.
--enable-suexec
: Ce
paramètre active la construction du module suEXEC de Apache qui peut être utilisé pour autoriser
les utilisateurs à lancer des scripts CGI et SSI avec un ID
différent de l'ID de l'utilisateur du serveur web appelant.
--with-suexec-*
: Ces
paramètres contrôlent le comportement du module suEXEC, comme la
racine des documents par défaut, l'UID minimal pouvant être utilisé
pour lancer le script sous suEXEC. Veuillez remarquer qu'avec un
UID minimal de 100, vous ne pourrez pas lancer des scripts CGI ou
SSI sous suEXEC en tant qu'utilisateur apache
.
...
/usr/lib/httpd/suexec : Ces commandes mettent
l'enveloppe suexec au
bon endroit, car il n'est pas destiné à être exécuté directement.
Ils ajustent aussi les permissions pour le binaire, mettant son
segid à apache
.
chown -R apache:apache
/srv/www : Par défaut, le processus
d'installation installe des fichiers (documentation, messages
d'erreur, icônes par défaut, etc.) avec comme propriétaire
l'utilisateur qui a extrait les fichiers de l'archive tar. Si vous
voulez modifier la propriété au profit d'un autre utilisateur, vous
devriez le faire maintenant. La seule exigence est que les
répertoires des documents soient accessibles par le processus
httpd avec les droits
(r-x) et il faut que les fichiers soient lisibles (r--) par
l'utilisateur apache
.
Configuration de Apache
Fichiers de
configuration
/etc/httpd/httpd.conf
et
/etc/httpd/extra/*
Informations sur la configuration
Voir file:///usr/share/httpd/manual/configuring.html
pour des instructions détaillées sur la personnalisation de votre
fichier configuration du serveur HTTP Apache.
Il n'y a pas de raison, au moins pour les sites exposés sur
internet, de ne pas utiliser de chiffrement SSL. Configurer un
site web sécurisé ne coûte rien à part l'installation d'un petit
outil supplémentaire et quelques minutes de configuration.
Utilisez le guide sur https://wiki.linuxfromscratch.org/blfs/wiki/Securing_a_website
pour apprendre à créer des certificats acceptés dans le monde
entier et à les renouveler régulièrement.
Unité Systemd
Si vous voulez que le serveur Apache démarre automatiquement au démarrage
du système, installez l'unité systemd
httpd.service
incluse dans
le paquet blfs-systemd-units-20240205 :
make install-httpd