Introduction
Il existe déjà un billet sur la compilation du serveur web apache, mais il concerne la branche 2.2.x. La branche actuelle, 2.4.x ne fonctionne pas selon le même principe, car les fonctionnalités APR ( Apache Portable Runtime ) ont été sorties du code source de httpd.
Il en est de même pour PCRE ( Perl Compatible Regular Expressions ).
Ce billet et conçu pour Debian Squeeze. Il suppose installé les outils de compilation ( aptitude install build-essential ).
Chargement des sources
Au moment de la rédaction de ce billet, les versions stables sont :
- httpd 2.4.2,
- apr 1.4.6
- apr-util 1.4.1
Télécharger ces sources par wget
wget http://mirror.ibcp.fr/pub/apache//httpd/httpd-2.4.2.tar.gz wget http://apache.cict.fr//apr/apr-1.4.6.tar.gz wget http://apache.cict.fr//apr/apr-util-1.4.1.tar.gz
Il faut aussi installer les librairies PCRE
aptitude install libpcre3-dev
Décompresser les sources
tar -xvzf /home/httpd-2.4.2.tar.gz cd httpd-2.4.2/srclib tar -xvzf /home/apr-1.4.6.tar.gz mv apr-1.4.6 apr tar -xvzf /home/apr-util-1.4.1.tar.gz mv apr-util-1.4.1 apr-util
Lancer ensuite la compilation de manière "classique". Dans l'exemple le mpm utilisé est worker.
./configure --enable-so --enable-mods-shared="all" --prefix=/usr/local/apache2 --with-mpm=worker make make install
La suite de la configuration est identique au billet précédent. Un bémol toutefois, il faut dans la configuration charger un module de plus : mod_unixd sinon il y aura au démarrage l'erreur suivante : Invalid command 'User', perhaps misspelled or defined by a module not included in the server configuration.
Ci dessous un exemple de fichier httpd.conf compatible 2.4.x
ServerRoot /usr/local/apache2 User apache Group apache DocumentRoot /var/www/html Listen 80 LoadModule mime_module modules/mod_mime.so LoadModule unixd_module modules/mod_unixd.so TypesConfig conf/mime.types LoadModule dir_module modules/mod_dir.so DirectoryIndex index.html ErrorLog /var/log/apache2/error.log LogLevel warn