29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / Internet / Serveur web Apache / Apache 1.3.37 : compiler et installer les modules externes (IV)





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

Apache 1.3.37 : compiler et installer les modules externes (IV)

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.

Octavio Paz

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. &nbsp; &nbsp; &nbsp; 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