
    Apache+DSO+mod_ssl+mod_perl+php+mod_auth_nds+mod_auth_mysql+mod_fastcgi

Ray Van Dolson, rayvd@firetail.org ;
version franaise : Xavier FACQ, xavier.facq@free.fr.

   v0.91, 5 avril 2000
     _________________________________________________________________

   _Ce document traite de la mise en place d'un serveur Apache intgrant
   des modules DSO (Dynamic Shared Object, NdT : bibliothque d'objets
   partage) comme par exemple mod_perl, mod_ssl et php._
     _________________________________________________________________

1. Copyright

   Mini-HOWTO Apache+mods pour systmes Linux.

   Copyright  2000 Ray Van Dolson.

   Cette documentation est libre, vous pouvez la redistribuer et/ou la
   modifier selon les termes de la Licence Publique Gnrale GNU publie
   par la Free Software Foundation (version 2 ou bien toute autre version
   ultrieure choisie par vous).

   Cette documentation est distribue car potentiellement utile, mais
   SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les
   garanties de commercialisation ou d'adaptation dans un but spcifique.
   Reportez-vous  la Licence Publique Gnrale GNU pour plus de dtails.

   Vous pouvez obtenir une copie de la Licence Publique Gnrale GNU en
   crivant  la Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
   MA02139, tats-Unis.
   Ou bien sur le site suivant : http://www.gnu.org/copyleft/gpl.html.

2. Introduction

   Ce document va expliquer l'installation d'Apache et de ses modules sur
   un serveur du Walla Walla College (www.wwc.edu). Bien qu'il soit
   spcifique  notre systme, il peut servir d'aide prcieuse pour faire
   d'autres installations.

   Ce document tentera d'expliquer les tapes exactes utilises pour
   installer le serveur. Des remarques seront faites lorsque les choses
   ont t ralises diffremment, mais la marche  suivre originale sera
   donne (en supposant que a marche).

2.1 Description des composants

   L'installation a t ralise sur une Red Hat 6.1, noyau 2.2.14,
   fonctionnant sur un Dual PIII 600 avec RAID5 et plein d'autres choses
   allchantes.

   Le serveur-web est Apache 1.3.12. Les modules suivants ont t ajout
   au serveur :
     * mod_fastcgi SNAP (et mod_rewrite), utilis avec Zope ;
     * Auth-MySQL 2.20 ;
     * mod_ssl 2.6.2 (Open-SSL 0.9.5) ;
     * mod_perl 1.21 ;
     * PHP 3.0.15 ;
     * mod_auth_nds 0.3a.

2.2 Historique

   v0.91 (5 avril 2000)
     * mise  jour de mod_fastcgi  la version correcte.

   v0.9 (4 avril 2000)
     * brouillon termin ;
     * correction des erreurs d'orthographe et de grammaire.

   v0.1 (mars 2000)
     * premier jet.

3. Installation des composants

3.1 Prrequis

   Vous aurez besoin des logiciels suivant :
     * Apache 1.3.12
     * PHP 3.0.15
          + GD 1.3 (pour l'utilisation des fichiers GIF)
               o Source
               o RPM
               o RPM-devel
          + GD 1.8.1 (pour l'utilisation des fichiers PNG)
               o Source
               o RPM
               o RPM-devel
          + IMAP 4.5+
               o Source
               o RPM
          + OpenLDAP 1.2.9+
               o Source
               o RPM
               o RPM-devel
     * mod_perl 1.22+
          + Modules pour Perl5
          + MIME::Base64
          + URI
          + HTML-Parser
          + Digest-MD5
          + libnet
          + libwww
     * mod_ssl 2.6.2+
          + OpenSSL 0.9.5
               o Source
               o RPM
               o RPM-devel
          + RSAREF 2.0
          + MM 1.0.12
     * MySQL 3.22.32
     * mod_auth_nds 0.4
          + ncpfs 2.2.0.17 Note : le noyau doit tre compil avec le
            support IPX.
     * mod_auth_mysql 2.20
     * mod_fastcgi SNAP Oct06

   Voici l'arborescense que j'ai utilis et que je vous recommande :
+ /usr/src
|
+-+ apache
  |
  +-+ apache-1.3.12
  |
  +-+ modules
  | |
  | +-+ mod_perl
  | | |
  | | +- mod_perl-1.21
  | | |
  | | +-+ depend
  | |   |
  | |   +- <perl modules here>
  | |
  | +-+ mod_ssl
  | | |
  | | +- mod_ssl-2.6.2-1.3.12
  | | |
  | | +-+ depend
  | |   |
  | |   +- openssl-0.9.5
  | |   |
  | |   +- rsaref-2.0
  | |   |
  | |   +- mm-1.0.12
  | |
  | +-+ mod_fastcgi_SNAP
  | |
  | +-+ php
  | | |
  | | +- php-3.0.15
  | | |
  | | +-+ depend
  | |   |
  | |   +- gd-1.3
  | |   |
  | |   +- imap-4.5
  | |   |
  | |   +- openldap-1.2.9
  | |
  | +-+ mod_auth_nds
  | | |
  | | +- mod_auth_nds-0.4
  | | |
  | | +-+ depend
  | |   |
  | |   +- ncpfs-2.2.0.17
  | |
  | +-+ mod_auth_mysql
  |
  +-+ mysql

   Vrifiez que les logiciels cits ci-dessus sont dj installs sur
   votre systme. En gnral, a ne peut pas faire de mal de tous les
   tlcharger et de les rinstaller au cas o, car vous pouvez avoir une
   ancienne version sur votre machine.

3.2 mod_ssl

  Installation et compilation de OpenSSL

   mod_ssl a besoin qu'un moteur SSL soit install. OpenSSL est le choix
    naturel  pour un environnement Linux. Vous pouvez soit l'installer
    partir d'un RPM (comme moi), soit compiler les sources. Si vous
   choisissez de le compiler, il faut ensuite l'installer sur le systme
   dans /usr/local par exemple, ou faire pointer les applications qui en
   ont besoin vers celui-ci.

   Les RPM installeront OpenSSL dans le rpertoire du systme.

  Installation et compilation de RSAREF 2.0

   Crez un rpertoire rsaref-2.0 o vous le souhaitez.
   Personnellement, j'ai utilis
   /usr/src/apache/modules/mod_ssl-blah/depend/. Dplacez vous dans ce
   rpertoire.

cd rsaref-2.0
cp -rp install/unix local
cd local
make
mv rsaref librsaref.a

   Ces commandes doivent compiler la librarie rsaref ! Quand vous aurez
   besoin d'y faire rfrence, configurez votre script dans ce
   rpertoire.

  Installation et compilation de MM

   Dcompressez mm-1.0.12 (ou une version plus rcente) dans le
   sous-rpertoire depend de mod_ssl-blah. Puis suivez les instructions
   suivantes :


cd mm-1.0.12
./configure --disable-shared
make

   Cela devrait compiler la librarie mm. Comme ci-dessus, rfrencez le
   rpertoire quand vous en aurez besoin. Vous pouvez aussi installer
   cette librairie sur le systme.

  Installation et compilation de mod_ssl

   La procdure normale avec apxs est de compiler Apache en premier,
   puis, en utilisant apxs, de compiler les modules que vous souhaitez
   utiliser et de les insrer sur le serveur. Cependant, mod_ssl doit
   tre compil sur le serveur avant que vous ne puissiez l'utiliser via
   apxs. Une fois que mod_ssl est sur le serveur, vous pouvez alors le
   mettre  jour via apxs sans recompiler Apache entirement.

   Allez dans le rpertoire o vous avez compil mod_ssl et excutez les
   commandes suivantes pour la premire compilation :

#!/bin/sh

./configure \
        --with-apache=/usr/src/apache/apache_1.3.12 \
        --with-ssl \
        --with-rsa=../depend/rsaref-2.0/local \
        --with-mm=../depend/mm-1.0.12 \
        --enable-shared=ssl

   Vous n'avez pas besoin de faire un _make_ ou quoi que ce soit d'autre.
   Quand vous compilerez Apache, tout se fera en mme temps.

   Ces lignes de configuration donnent deux exemples de comment votre
   systme peut tre configur. Dans mon cas, OpenSSL tait dj install
   quelque part (probablement dans /usr/lib, /usr/include). Par
   consquent, je n'ai pas eu besoin de lui passer en paramtre le
   rpertoire, contrairement  rsa and mm qui n'taient pas dj prsent.
   J'ai donc du les compiler et laisser les sources dans leur rpertoire
   (ne faites pas de make install ni rien). Dans ce cas, vous devez
   indiquer lors du  configure  le rpertoire adquate pour qu'il
   puisse trouver les en-tte et les libraires.

    ce point,  moins que vous ne mettiez  niveau Apache (auquel cas,
   vous devrez refaire le point prcdent pour la nouvelle version), vous
   pouvez utiliser apxs pour mettre  jour et recompiler mod_ssl. Voici
   mon script de configuration :

./configure \
        --with-apxs=/apps/apache-1.3.12/bin/apxs \
        --with-ssl=../depend/openssl-0.9.4 \
        --with-rsa=../depend/rsaref-2.0/local \
        --with-mm=../depend/mm-1.0.12

   Ou quelque combinaison de ce qui prcde. Puis excutez :

make
make install
make distclean

   pour mettre fin  l'installation.

   Note : _MM n'est pas ncessaire pour compiler mod_ssl. Si vous avez
   des problmes, ne le compilez pas et enlevez-le des paramtres de
    ./configure ._

   _Quand j'ai compil mod_ssl, j'ai eu des erreurs avec DBM. Pour
   rsourdre cela, j'ai ajout -lndbm dans le Makefile :_
     * lancez le script ci-dessus
     * dplacez-vous dans pkg.sslmod
     * ditez le makefile et ajoutez -lndbm  LIBS_SHLIB. Cela doit
       ressembler  :
     * LIBS_SHLIB=-lm -lcrypt -lndbdm

   _Ainsi, vous ne devriez plus avoir de problme._

3.3 Apache

   Dsarchivez apache-1.3.12.tar.gz dans /usr/src/apache ou autre part.
   Ensuite, vous devez compiler Apache avec les options suivantes :
     * mod_ssl (pour compiler mod_ssl comme une bibliothque, il doit
       l'tre normalement en premier. Aprs, il pourra tre mis  niveau
       via apxs.)
     * mod_proxy
     * mod_so
     * mod_rewrite (pour l'utilisez avec Zope)

   Voici le fichier de configuration que j'utilise pour compiler Apache :

#!/bin/sh

SSL_BASE=../depend/openssl-0.9.4 \
RSA_BASE=../depend/rsaref-2.0/local \
EAPI_MM=../depend/mm-1.0.12 \
./configure \
        --enable-module=ssl \
        --enable-module=proxy\
        --enable-shared=proxy\
        --enable-module=rewrite \
        --enable-shared=rewrite \
        --prefix=/apps/apache-1.3.12 \
        --enable-shared=ssl \
        --enable-rule=SHARED_CORE \
        --enable-rule=SHARED_CHAIN \
        --enable-module=so

   Puis :

make
make certificate
make install

   Apache doit maintenant tre compil et install dans le rpertoire que
   vous avez spcifier avec --prefix. Vrifez qu'il fonctionne
   correctement.

   /path/to/apache/bin/apachectl start

   ou

   /path/to/apache/bin/apachectl startssl

   Si tout va bien, Apache doit fonctionner normalement. Sinon, reprennez
   les manipulations depuis le dbut, et vrifiez que vous n'avez rien
   oubli.

3.4 MySQL

   php, tout comme mod_auth_mysql et peut-tre mod_perl,  besoin que
   MySQL soit install et qu'il fontionne. Il est au-del des intentions
   de ce document que d'entrer dans les dtails de l'installation de
   MySQL. Mais vous pouvez tlcharger l'archive et suivre les
   instructions des fichiers INSTALL. C'est assez simple de mettre en
   service MySQL. a doit tre quelque chose comme :

./configure
make
make install

   Comme vous devriez avoir tout d'install, vous pouvez maintenant
   compiler les autres modules d'Apache.

3.5 PHP 3.0.15

   Vous allez maintenant compiler php-3.0.15 comme une bibliothque, ce
   qui veut dire que c'est un module qui peut tre dmarr ou arrt
   indpendamment du serveur. C'est ainsi plus facile de mettre  niveau
   php sans avoir  tout recompiler (ce qui peut tre pnible si vous
   utilisez beaucoup de modules avec Apache).

  GD

   Dans mon installation d'Apache, php utilise gd pour crer des images
   et d'autres choses. J'utilise une vieille version de gd (installe via
   RPM) pour faire la liaison avec php. Comme cela, on peut utiliser des
   fichiers GIF en sortie. Cela n'est peut tre pas trs bien vis  vis
   des copyright, ainsi vous devriez utiliser une version suprieure  la
   1.3 qui ne supporte que les fichiers PNG.

   Vous pouvez l'installer soit  partir d'un RPM (rpm -i gd*.rpm), soit
   compiler les sources et l'installer sur votre systme.

  IMAP

   Si vous voulez avoir le support IMAP, la procdure est similaire  gd.
   J'ai aussi utilis un RPM puisque je suis sur une Red Hat, mais
   l'installer  partir des sources est une procdure assez simple :


./configure
make
make install

  OpenLDAP

   Vous pouvez aussi installer OpenLDAP  partir de RPM ou des sources.
   J'ai choisi de le faire  partir des sources, car la dernire version
   n'tait pas encore disponible en RPM au moment de mon installation.


./configure
make
make install

   devrait faire l'affaire (ou bien rpm -i openldap*.rpm).

  Installation et compilation de PHP 3.0.15

   Maintenant que les modules ci-dessus sont installs et qu'ils
   fonctionnent, vous pouvez compiler php comme une bibliothque. Le
   principe est simple et rapide :

cd /usr/src/apache/modules/php/php-3.0.15

./configure \
        --with-apxs=/apps/apache/bin/apxs \
        --with-config-file-path=/apps/etc \
        --with-gd \
        --with-imap \
        --with-mysql=/apps/mysql \
        --with-ldap=/apps \
        --with-zlib \
        --enable-track-vars

   _Soyez sr que si vos libraries --with ne sont pas installes dans
   /usr/local ou /usr, vous les rajoutiez sur une ligne =/localisation/,
   pour que configure puisse trouver les trucs dont il a besoin !_

make
make install

   Si tout c'est bien pass,  make install  va utiliser apxs pour
   installer libphp3.so dans /apache/libexec/libphp3.so, ajouter les
   entres ncessaires dans httpd.conf et activer php3.

3.6 mod_perl

   Cette section explique l'installation de mod_perl comme une
   bibliothque d'Apache. Il y a beaucoup de modules perl (en plus, bien
   sr, de perl5 que je suppose vous avez dj install) qui doivent tre
   ajouts avant mod_perl pour compiler sans problmes. Si vous
   n'installez pas ces modules, mod_perl devrait se plaindre et vous
   indiquer lesquels manquent.

   Il y a un certain ordre  respecter dans l'installation de ces
   modules. Certains dpendent d'autres, j'ai donc numr l'ordre dans
   lequel je les ai install sans problme.

  Modules perl requis

   Les modules perl peuvent tre trouvs aux url donnes plus haut dans
   ce document. Tlchargez-les et mettez-les o vous le souhaitez ou
   dans le rpertoire que j'ai utilis (voir aussi arborescense
   utilise). L'installation d'un module est simple. Aprs l'avoir
   dsarchiv dans le rpertoire (normalement avec : tar xvfz), il suffit
   de faire :

perl Makefile.PL
make
make install

   Si tout ce passe bien, cela devrait configurer, compiler et installer
   le module perl  votre place. Bien sr vous pouvez lire les fichiers
   README en cas d'erreurs.

   Voici l'ordre de l'installation des modules ncessaires pour
   mod_perl :
    1. MIME::Base64
    2. URI
    3. HTML::Parser
    4. Digest-MD5
    5. libnet
    6. libwww

  Installation et compilation de mod_perl 1.2x

   Aprs avoir install les modules perl, vous tes prt pour compiler et
   installer mod_perl dans Apache. Allez dans le rpertoire o vous avez
   extrait mod_perl, et lancez le script suivant :

perl Makefile.PL \
        USE_APXS=1 \
        WITH_APXS=/path/to/apache/bin/apxs \
        EVERYTHING=1

   Cela devrait configurer votre Makefile et dire  mod_perl de se
   compiler tout seul comme une bibliothque en utilisant apxs (dans le
   rpertoire que vous devez spcifier). Aprs, vous n'avez plus qu'
   faire :

make
make install

   Ainsi, mod_perl sera dplac dans le rpertoire appropri, et les
   lignes ajoutes  votre fichier httpd.conf.

3.7 mod_auth_mysql

   mod_auth_mysql permet  Apache d'accder  la base utilisateur MySQL.
   L'installation comme une bibliothque n'est pas trs bien documente
   dans le fichier README, mais c'est possible.

   Premirement, allez dans le rpertoire o vous avez extrait
   mod_auth_mysql. Normalement, vous avez MySQL d'install (avec les
   fichiers d'en-tte, etc.). Regardez o sont installes les libraries
   MySQL et les fichiers d'en-tte. Dans le doute, vrifiez dans
   /usr/lib/mysql et dans /usr/include/mysql.

   Pour compiler mod_auth_mysql, vous devez renommer le fichier
    config.h  en  auth_mysql_config.h . Je ne sais pas pourquoi ce
   fichier n'a pas le bon nom, mais faites-le grce  cette commande :


cp config.h auth_mysql_config.h

   Et pour finir :

/path/to/apache/bin/apxs -i -a -I/usr/include/mysql -L/usr/lib/mysql \
        -lmysqlclient -c mod_auth_mysql.c

   Il faudra peut-tre l'excuter en super-utilisateur (_root_) si vous
   n'avez pas les droits de lecture/criture sur le rpertoire d'Apache.

3.8 mod_auth_nds

   Dans mon cole, le rseau Windows choisi est de type Netware. C'est
   rest comme a longtemps, et bien qu'il fonctionnait bien, maintenant
   on l'utilise uniquement pour le partage de fichiers et le courriel.
   Tous les tudiants ont un compte Netware dans lequel les fichiers
   personnels, ainsi que les pages web, sont stocks. Chacun peut monter
   ses rpertoires  partir du serveur Linux, ainsi on peut protger les
   donnes avec les informations du compte Netware. Avec ce module,
   Apache peut faire l'authentification  travers le rseau Netware.

  ncpfs

   Pour compiler mod_auth_nds, il faut que ncpfs soit install (ainsi que
   les fichiers d'en-tte). Avant de compiler ncpfs, vous devez vous
   assurer que votre noyau supporte IPX. Si c'est le cas, faites juste :

./configure
make
make install    # optionnel

   qui copira (et installera) les libraries.

  Installation et compilation de mod_auth_nds

   Si ncpfs est install, en lancant les commandes suivantes, cela
   devrait compiler mod_auth_nds comme une bibliothque :

/path/to/apache/bin/apxs -c -lncp -L/usr/lib -I/usr/include mod_auth_nds.c
/path/to/apache/bin/apxs -i mod_auth_nds.so

   Ensuite, ajoutez les lignes suivantes au fichier httpd.conf ( la
   main) :

LoadModule nds_auth_module libexec/mod_auth_nds.so
AddModule mod_auth_nds.c

   Il ne vous reste plus qu' redmarrer Apache !

3.9 mod_fastcgi

   L'installation de mod_fastcgi est ncessaire si vous voulez accder 
   votre serveur Zope avec Apache. C'est plus pratique, car Apache est
   plus scuris et plus configurable que le serveur Zope.

   La version stable actuelle de mod_fastcgi est 2.2.2, mais cette
   version ne fonctionne pas correctement avec Zope. Vous devez donc vous
   procurer SNAP release qui date du 06 octobre 1999 dont le lien est
   donn plus haut.

   Allez dans le rpertoire de mod_fastcgi et lancez ces commandes :

/path/to/apache/bin/apxs -o mod_fastcgi.so -c *.c
/path/to/apache/bin/apxs -i -a -n fastcgi mod_fastcgi.so

   Voir la documentation pour la description de son utilisation.

4. Mots de la fin

   La plupart de ces informations peuvent tre obtenues en lisant les
   fichiers README et INSTALL de chacuns des modules. Cependant, ce
   document est utile dans le cas o a ne fonctionne pas ou que la
   documentation n'est pas trs explicite. Mais il a surtout l'avantage
   d'exister et d'tre plus simple  suivre et  comprendre que de passer
   d'un README  un autre.

4.1 Remerciements

Phillip R. Wilson <pwilson@drew.edu>, auteur de mod_auth_nds, pour m'avoir aid
 compiler et installer cmod_auth_nds avec apxs.

John Ash <jash@wwc.edu>, mon patron, pour son aide et surtout pour mon travail.

Marcus Faure <marcus@faure.de>, auteur de Apache SSL PHP/FI frontpage mini-HOWT
O,
dont le document m'a beaucoup aid.

4.2 Contact

   Si vous avez trouv des fautes de frappe ou de grammaire dans ce
   document, n'hsitez pas  m'envoyer un courriel.

Ray Van Dolson
Courriel : rayvd@firetail.org
IRC : DALnet, #Bludgeon (nick Variant)

   NdT : le lecteur francophone pourra en faire autant...
Xavier Facq
Courriel : xavier.facq@free.fr

4.3 Autre

   Tout ce qui est mentionn dans ce document sera ventuellement
   disponible en ftp sur ftp.wwc.edu/pub/apache. Il y aura tout ce qui
   est prsent ci-dessus, ainsi que les scripts d'installation.
