Date de publication: le lundi 20 août 2007 à 02h31
Dernière modification: par Pascal BOYER le mercredi 15 septembre 2010 à 00h09
« Article précédent: Apache 1.3.37 : installer les sources du serveur (III)
» Article suivant: Apache 1.3.37 : compiler et installer PHP 4.4.7 (V)
Entendre les pensées,
voir ce que nous disons,
toucher le corps de l'idée.
A présent, nous allons installer un certain nombre de modules qui ne sont pas supportés, et donc proposés, par défaut dans Apache.
Il n'est en aucun cas obligatoire ou nécessaire de tous les installer pour obtenir, au final, un serveur web fonctionnel. En tout état de cause, il vous sera tout à fait possible de les installer ultérieurement, même une fois le serveur web compilé et installer. Comme ce dernier sera compilé avec
le module mod_so
dont la fonction est de pouvoir ajouter dynamiquement des objets partagés (so = shared objects = objets partagés), il suffira alors de compiler les modules en mode dynamique/partagé pour les inclure dans le serveur sans devoir recompiler ce dernier.
En revanche, si vous préférez compiler les modules en mode statique, alors il vous faudra recompiler Apache pour que ce dernier les prenne en compte.
Ressources
- Sur cette page, nouvelles fonctionnalités , vous trouverez des informations sur certains des modules proposé par défaut dans Apache 1.3.
- Voici la documentation en français de tous les modules intégrés par défaut dans Apache 1.3: Doc modules Apache 1.3
- Il existe un forum (en anglais) dédié aux modules additionnels de Apache proposés par la communauté des développeurs: modules.apache.org
Apache 1.3.37 : compiler et installer le module mod_ssl
L'application de ce module est indispensable pour que vous puissiez mettre en oeuvre des accès sécurisés à tout ou partie de votre site (http s://...).
Prérequis
Pour le fonctionnement de ce module, il est indispensable que les packages suivants soient installés:
- Apache 1.3.x
- OpenSSL
- MM
- Perl (pour configurer OpenSSL et les utilitaires APXS fournis par Apache).
Sur la page d'accueil du site du projet, modssl.org , on lit ceci:
«This module provides strong cryptography for the Apache 1.3 webserver via the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols by the help of the Open Source SSL/TLS toolkit OpenSSL, which is based on SSLeay from Eric A. Young and Tim J. Hudson.
Ce module fournit la cryptographie forte à la branche 1.3 du serveur web Apache par le biais des protocoles SSL versions 2 et 3 (Secure Sockets Layer/Couche Sécurisée de Sockets) et TLS version 1 (Transport Layer Security/Sécurité de la Couche de Transport) à l'aide de la boîte à outils open source OpenSSL SSL/TLS basée sur l'outil SSLeavy de Eric A. Young and Tim J. Hudson.»
Télécharger le module mod_ssl
On se place dans le répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge la dernière version de l'archive à partir de la page d'accueil du site openssl.org ou avec la commande wget:
wget http://www.modssl.org/source/mod_ssl-2.8.28-1.3.37.tar.gz
--22:53:25-- http://www.modssl.org/source/mod_ssl-2.8.28-1.3.37.tar.gz => `mod_ssl-2.8.28-1.3.37.tar.gz' Résolution de www.modssl.org... 195.30.6.168 Connexion vers www.modssl.org|195.30.6.168|:80...connecté. requête HTTP transmise, en attente de la réponse...200 OK Longueur: 820 417 (801K) [application/x-tar] 100%[========================================>] 820 417 1.48M/s 22:53:26 (1.48 MB/s) - « mod_ssl-2.8.28-1.3.37.tar.gz » sauvegardé [820417/820417]
On extrait le contenu de l'archive:
tar zxfv mod_ssl-2.8.28-1.3.37.tar.gz
Le répertoire d'installation du module est donc en dehors de celui de Apache.
On se place dans le nouveau répertoire:
cd mod_ssl-2.8.28-1.3.37
On crée le Makefile:
./configure --with-apache=/usr/local/ServeurWeb/apache_1.3.37 --with-mm=/usr/local/ --with-ssl=/usr/local --prefix=/usr/local/ServeurWeb
Configuring mod_ssl/2.8.28 for Apache/1.3.37 + Apache location: /usr/local/ServeurWeb/apache_1.3.37 (Version 1.3.37) + OpenSSL location: /usr/local + MM location: /usr/local/ + Auxiliary patch tool: ./etc/patch/patch (local) + Applying packages to Apache source tree: o Extended API (EAPI) o Distribution Documents o SSL Module Source o SSL Support o SSL Configuration Additions o SSL Module Documentation o Addons Done: source extension and patches successfully applied. Configuring for Apache, Version 1.3.37 + using installation path layout: Apache (config.layout) Creating Makefile Creating Configuration.apaci in src Creating Makefile in src + configured for Linux platform + setting C compiler to gcc + setting C pre-processor to gcc -E + using "tr [a-z] [A-Z]" to uppercase + checking for system header files + adding selected modules o ssl_module uses ConfigStart/End + SSL interface: mod_ssl/2.8.28 + SSL interface build type: OBJ + SSL interface compatibility: enabled + SSL interface experimental code: disabled + SSL interface conservative code: disabled + SSL interface vendor extensions: disabled + SSL interface plugin: Built-in SDBM + SSL library path: /usr/local + SSL library version: OpenSSL 0.9.8e 23 Feb 2007 + SSL library type: installed package (stand-alone) + enabling Extended API (EAPI) using MM library: /usr/local/ (installed) + using system Expat + checking sizeof various data types + doing sanity check on compiler and options Creating Makefile in src/support Creating Makefile in src/regex Creating Makefile in src/os/unix Creating Makefile in src/ap Creating Makefile in src/main Creating Makefile in src/modules/standard Creating Makefile in src/modules/ssl Now proceed with the following commands: $ cd /usr/local/ServeurWeb/apache_1.3.37 $ make $ make certificate $ make install
Nous n'allons pas lancer les commandes proposées par les 5 dernières lignes du message ci-dessus mais poursuivre en jetant un oeil à quelques modifications apportées par la commande qui vient de s'exécuter:
Le fichier apache_1.3.37/src/Configuration.tmpl
Les trois sections suivantes lui ont été ajoutées:
29 ############################################# 30 # SSL support: 31 # 32 # o Set SSL_BASE to either the directory of your OpenSSL source tree or the 33 # installation tree. Alternatively you can also use the value 'SYSTEM' which 34 # then indicates that OpenSSL is installed under various system locations. 35 # 36 # o Disable SSL_COMPAT rule to build mod_ssl without backward compatibility 37 # code for Apache-SSL 1.x, mod_ssl 2.0.x, Sioux 1.x and Stronghold 2.x. 38 # 39 # o The SSL_SDBM rule controls whether the built-in SDBM library should be 40 # used instead of a custom defined or vendor supplied DBM library. Use the 41 # value 'default' for automatic determination or use 'yes' to force the use 42 # of SDBM in case the vendor DBM library is buggy or restricts the data 43 # sizes too dramatically. 44 # 45 # o The SSL_EXPERIMENTAL rule can be used to enable still experimental code 46 # inside mod_ssl. These are usually new features which need some more 47 # testing before they can be considered stable. So, enable this on your own 48 # risk and only when you like to see Apache+mod_ssl dump core ;-) 49 # 50 # o The SSL_CONSERVATIVE rule can be used to disable some non-conservative 51 # code inside mod_ssl. These are usually recently introduced features 52 # which some people still want to consider unstable. So, to be maximum 53 # conservative, one can enable this flag and this way remove such code. 54 # 55 # o The SSL_VENDOR rule can be used to enable code inside mod_ssl which can be 56 # used by product vendors to extend mod_ssl via EAPI hooks without patching 57 # the source. Additionally ssl_vendor*.c source files are automatically 58 # picked up by the compilation process. 59 60 #SSL_BASE=/usr/local/ssl 61 Rule SSL_COMPAT=yes 62 Rule SSL_SDBM=default 63 Rule SSL_EXPERIMENTAL=no 64 Rule SSL_CONSERVATIVE=no 65 Rule SSL_VENDOR=no
107 ############################################### 108 # Extended API (EAPI) support: 109 # 110 # EAPI: 111 # The EAPI rule enables more module hooks, a generic low-level hook 112 # mechanism, a generic context mechanism and shared memory based pools. 113 # 114 # EAPI_MM: 115 # Set the EAPI_MM variable to either the directory of a MM Shared Memory 116 # Library source tree or the installation tree of MM. Alternatively you can 117 # also use the value 'SYSTEM' which then indicates that MM is installed 118 # under various system locations. When the MM library files cannot be found 119 # the EAPI still can be built, but without shared memory pool support, of 120 # course. 121 122 Rule EAPI=no 123 #EAPI_MM=SYSTEM
523 ## mod_ssl incorporates SSL into Apache. 524 ## It must stay last here to be first in execution to 525 ## fake basic authorization. 526 527 # AddModule modules/ssl/libssl.a
Le répertoire apache_1.3.37/conf/
Il y a 5 nouveaux répertoires:
drwxr-xr-x 2 root root 4096 2007-08-15 23:34 ssl.crl drwxr-xr-x 2 root root 4096 2007-08-15 23:34 ssl.crt drwxr-xr-x 2 root root 4096 2007-08-15 23:34 ssl.csr drwxr-xr-x 2 root root 4096 2007-08-15 23:34 ssl.key drwxr-xr-x 2 root root 4096 2007-08-15 23:34 ssl.prm
Et au bas des fichiers httpd.conf-dist et httpd.conf-dist-win on trouve à présent une très longue section consacrée à SSL:
Début de la section ajoutée:
956 ## 957 ## SSL Global Context 958 ## 959 ## All SSL configuration in this context applies both to 960 ## the main server and all SSL-enabled virtual hosts. 961 ## 962 963 # 964 # Some MIME-types for downloading Certificates and CRLs 965 # 966 <IfDefine SSL> 967 AddType application/x-x509-ca-cert .crt 968 AddType application/x-pkcs7-crl .crl 969 </IfDefine> 970 971 <IfModule mod_ssl.c> ... ...
Fin de la section:
... ... ... 1179 # "force-response-1.0" for this. 1180 SetEnvIf User-Agent ".*MSIE.*" \ 1181 nokeepalive ssl-unclean-shutdown \ 1182 downgrade-1.0 force-response-1.0 1183 1184 # Per-Server Logging: 1185 # The home of a custom SSL log file. Use this when you want a 1186 # compact non-error SSL logfile on a virtual host basis. 1187 CustomLog logs/ssl_request_log \ 1188 "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 1189 1190 </VirtualHost> 1191 1192 </IfDefine> 1193
Apache 1.3.37 : compiler et installer le module mod_perl
Lien vers le site officiel du projet: perl.apache.org
Sur cette page, What is mod_perl , vous trouverez toutes les informations sur les fonctions de ce module. En gros, on peut dire qu'il est compatible avec les versions 1.3 et 2.x de Apache et qu'il est utile à ceux qui souhaitent développer des modules Apache dans le langage Perl. Donc, si vous n'envisagez pas de développer de tels modules, l'installation de mod_perl ne présente pour vous aucun intérêt.
:
Il n'y a aucun lien entre ce module et, par exemple, une application écrite en Perl comme l'analyseur de log Apache
AWStats
. Cette dernière fonctionnera parfaitement sans le module mod_perl.
Un lien pour aider ceux qui débutent avec les modules Apache en Perl: zoonek2
Prérequis
Pour la construction du Makefile il faut au moins:
dpkg -l '*perl*' |grep ^ii
ii libapt-pkg-perl 0.1.20 Perl interface to libapt-pkg ii libconfig-file-perl 1.4-2 Parses simple configuration files ii libdbd-mysql-perl 3.0008-1 A Perl5 database interface to the MySQL data ii libdbi-perl 1.53-1 Perl5 database interface by Tim Bunce ii libhtml-parser-perl 3.55-1 A collection of modules that parse HTML text <== IMPORTANT ii libhtml-tagset-perl 3.10-2 Data tables pertaining to HTML <== IMPORTANT ii libhtml-tree-perl 3.19.01-2 represent and create HTML syntax trees <== IMPORTANT ii liblocale-gettext-perl 1.05-1 Using libc functions for internationalizatio ii libnet-daemon-perl 0.38-1.1 Perl module for building portable Perl daemo ii libperl-dev 5.8.8-7 Perl library: development files ii libperl5.8 5.8.8-7 Shared Perl library <====== IMPORTANT ii libplrpc-perl 0.2017-1.1 Perl extensions for writing PlRPC servers an ii libtext-charwidth-perl 0.04-4 get display widths of characters on the term ii libtext-iconv-perl 1.4-3 converts between character sets in Perl ii libtext-wrapi18n-perl 0.06-5 internationalized substitute of Text::Wrap ii liburi-perl 1.35-2 Manipulates and accesses URI strings <== IMPORTANT ii libwww-perl 5.805-1 WWW client/server library for Perl (aka LWP) <== IMPORTANT ii perl 5.8.8-7 Larry Wall's Practical Extraction and Report <== IMPORTANT ii perl-base 5.8.8-7 The Pathologically Eclectic Rubbish Lister <== IMPORTANT ii perl-modules 5.8.8-7 Core Perl modules <== IMPORTANT ii perl-suid 5.8.8-7 Runs setuid Perl scripts ii perlmagick 6.2.4.5.dfsg1-0.14 A perl interface to the libMagick graphics r
Télécharger le module mod_perl
On se place dans le répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge la dernière version de l'archive à partir de cette page du site perl.apache.org ou avec la commande wget:
wget http://perl.apache.org/dist/mod_perl-1.0-current.tar.gz
On extrait le contenu de l'archive:
tar zxfv mod_perl-1.0-current.tar.gz
Le répertoire d'installation du module est donc en dehors de celui de Apache.
On se place dans le nouveau répertoire:
cd mod_perl-1.30
Compiler et installer le module mod_perl
Consultez le fichier:
mod_perl-1.30/eg/makepl_args.mod_perl
...pour savoir quels arguments peuvent être passés. Le fichier:
mod_perl-1.30/Makefile.PL
...contient également une liste d'arguments possibles (autour de la ligne 200)
On crée le Makefile:
perl Makefile.PL APACHE_PREFIX=/usr/local/ServeurWeb/apache_1.3.37 APACHE_SRC=/usr/local/ServeurWeb/apache_1.3.37/src SSL_BASE=/usr/local EVERYTHING=1 USE_APACI=1 APACI_ARGS=--enable-module=ssl,--enable-module=rewrite DO_HTTPD=1
Avant de poursuivre, le script pose immédiatement deux questions (sauf si, comme indiqué ci-dessus, vous utilisez l'option DO_HTTPD=1):
Will configure via APACI Configure mod_perl with /usr/local/ServeurWeb/apache_1.3.37/src ? [y] Shall I build httpd in /usr/local/ServeurWeb/apache_1.3.37/src for you? [y]
...auxquelles on répond par l'affirmative avec la touche Enter.
- la première question permet de confirmer l'emplacement des fichiers headers (*.h) du serveur Apache,
- la deuxième question permet de confirmer (ou non) que l'on souhaite que la commande apache_1.3.37/src/Configure sera exécutée lors du make (ci-dessous) et que l'exécutable apache_1.3.37/src/httpd sera également recréé.
La commande qui vient de s'exécuter crée un répertoire:
apache_1.3.37/src/modules/perl/
On compile le module:
make
On fait le test:
make test
... ... All tests successful, 8 tests skipped. Files=37, Tests=405, 8 wallclock secs ( 6.05 cusr + 0.79 csys = 6.84 CPU) kill `cat t/logs/httpd.pid` rm -f t/logs/httpd.pid rm -f t/logs/error_log
Et on installe:
make install
... ... snakeoil-rsa.crt ... 82ab5372.0 make[3]: quittant le répertoire « /usr/local/ServeurWeb/apache_1.3.37/conf/ssl.crt » [PRESERVING EXISTING CSR FILES: /usr/local/ServeurWeb/apache_1.3.37/conf/ssl.csr/*] [PRESERVING EXISTING CRL FILES: /usr/local/ServeurWeb/apache_1.3.37/conf/ssl.crl/*] [PRESERVING EXISTING KEY FILES: /usr/local/ServeurWeb/apache_1.3.37/conf/ssl.key/*] [PRESERVING EXISTING PRM FILES: /usr/local/ServeurWeb/apache_1.3.37/conf/ssl.prm/*] <=== [config] make[2]: quittant le répertoire « /usr/local/ServeurWeb/apache_1.3.37 » +--------------------------------------------------------+ | You now have successfully built and installed the | Apache 1.3 HTTP server. To verify that Apache actually | works correctly you now should first check the | (initially created or preserved) configuration files | | /usr/local/ServeurWeb/apache_1.3.37/conf/httpd.conf | | and then you should be able to immediately fire up | Apache the first time by running: | | /usr/local/ServeurWeb/apache_1.3.37/bin/apachectl start | | Or when you want to run it with SSL enabled use: | | /usr/local/ServeurWeb/apache_1.3.37/bin/apachectl startssl | | Thanks for using Apache. The Apache Group | http://www.apache.org/ +--------------------------------------------------------+ make[1]: quittant le répertoire « /usr/local/ServeurWeb/apache_1.3.37 » Appending installation info to /usr/local/lib/perl/5.8.8/perllocal.pod
Cinq nouveaux fichiers ont été créé:
ServeurWeb/apache_1.3.37/conf/access.conf.default ServeurWeb/apache_1.3.37/conf/httpd.conf.default ServeurWeb/apache_1.3.37/conf/magic.default ServeurWeb/apache_1.3.37/conf/mime.types.default ServeurWeb/apache_1.3.37/conf/srm.conf.default
...et plusieurs modules Perl sont à présent installés dans:
ServeurWeb/apache_1.3.37/src/modules/perl/
Bien sûr, c'est lors de la compilation de Apache que le module perl sera ajouté au fichier de configuration httpd.conf.
Apache 1.3.37 : installer le module mod_fastcgi
Ce module est nécessaire au fonctionnement de l'accélérateur/optimiseur de scripts PHP eAccelerator.
Lien vers le site officiel du module: fastcgi.com
Une définition de fastcgi proposée par wikipedia: FastCGI
La documentation complète (en anglais) du module se trouve ici: doc mod_fastcgi
Exemple de section mod_fastcgi dans le fichier httpd.conf: exemple dans httpd.conf
Télécharger le module mod_fastcgi
On se place dans le répertoire ServeurWeb:
cd /usr/local/ServeurWeb
La dernière version du module se télécharge à partir de cette page du site fastcgi.com ou avec la commande wget:
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz
On extrait le contenu de l'archive dans le répertoire des modules du serveur Apache 1.3.37:
tar zxfv mod_fastcgi-2.4.2.tar.gz -C apache_1.3.37/src/modules/
Puis on renomme le répertoire nouvellement créé:
mv apache_1.3.37/src/modules/mod_fastcgi-2.4.2 apache_1.3.37/src/modules/fastcgi
Si nécessaire, on modifie le propriétaire et le groupe propriétaire du module:
chown -R root:root apache_1.3.37/src/modules/fastcgi
La compilation statique du module sera effectuée en même temps que celle de Apache.
Commentaires














