Apache-2.4.58

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.

Script de démarrage

Si vous voulez que le serveur Apache démarre automatiquement au démarrage du système, installez le script de démarrage /etc/rc.d/init.d/httpd inclus dans le paquet blfs-bootscripts-20240209 :

make install-httpd

Contenu

Programmes installés: ab, apachectl, apxs, checkgid, dbmmanage, fcgistarter, htcacheclean, htdbm, htdigest, htpasswd, httpd, httxt2dbm, logresolve et rotatelogs
Bibliothèques installées: Plusieurs bibliothèques dans /usr/lib/httpd/modules/
Répertoires installés: /etc/httpd, /srv/www, /usr/include/httpd, /usr/lib/httpd, /usr/share/httpd, /var/log/httpd et /var/run/httpd

Descriptions courtes

ab

est un outil d'évaluation de votre serveur HTTP Apache

apachectl

est une interface avec le serveur HTTP Apache conçue pour aider l'administrateur à contrôler le fonctionnement du démon httpd de Apache

apxs

est un outil pour construire et installer les modules pour le serveur HTTP Apache

checkgid

est un programme qui vérifie s'il peut initialiser le gid du groupe spécifié. C'est pour voir si un groupe valide existe pour Apache2 afin de l'utiliser à l'exécution. Si l'utilisateur (doit être lancé en superutilisateur) est dans ce groupe, ou peut être initialisé dans ce groupe, le programme retournera 0

dbmmanage

est utilisé pour créer et mettre à jour les fichiers au format DBM utilisés pour stocker les noms d'utilisateur et les mots de passe pour l'authentification de base des utilisateurs HTTP

fcgistarter

est un outil pour démarrer un programme FastCGI

htcacheclean

est utilisé pour nettoyer le cache disque

htdbm

est utilisé pour manipuler la basse de données DBM des mots de passe

htdigest

est utilisé pour créer et mettre à jour les fichiers plats utilisés pour stocker les noms d'utilisateur, les realms et les mots de passe pour une authentification digest des utilisateurs HTTP

htpasswd

est utilisé pour créer et mettre à jour les fichiers plats utilisés pour stocker les noms d'utilisateur et les mots de passe pour une authentification des utilisateurs HTTP

httpd

est le serveur HTTP Apache

httxt2dbm

est utilisé pour générer les fichiers DBM depuis des entrées textes, qui seront utilisés dans RewriteMap

logresolve

est un programme de post-traitement pour résoudre des adresses IP dans des fichiers journaux d'accès d'Apache

rotatelogs

est un programme simple pour une utilisation conjointe avec la fonctionnalité de redirection du fichier journal d'Apache

suexec

permet aux utilisateurs de lancer des applications CGI et SSI avec un utilisateur différent