Mini-HOWTO Apache+mods pour syst�mes 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 G�n�rale GNU publi�e par la Free Software Foundation (version 2 ou bien toute autre version ult�rieure choisie par vous).
Cette documentation est distribu�e car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but sp�cifique. Reportez-vous � la Licence Publique G�n�rale GNU pour plus de d�tails.
Vous pouvez obtenir une copie de la Licence Publique G�n�rale 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.
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 sp�cifique � notre syst�me, il peut servir d'aide pr�cieuse pour faire d'autres installations.
Ce document tentera d'expliquer les �tapes exactes utilis�es pour installer le serveur. Des remarques seront faites lorsque les choses ont �t� r�alis�es diff�remment, mais la marche � suivre originale sera donn�e (en supposant que �a marche).
L'installation a �t� r�alis�e sur une Red Hat 6.1, noyau 2.2.14, fonctionnant sur un Dual PIII 600 avec RAID5 et plein d'autres choses all�chantes.
Le serveur-web est Apache 1.3.12. Les modules suivants ont �t� ajout� au serveur :
v0.91 (5 avril 2000)
v0.9 (4 avril 2000)
v0.1 (mars 2000)
Vous aurez besoin des logiciels suivant :
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
V�rifiez que les logiciels cit�s ci-dessus sont d�j� install�s sur votre syst�me. En g�n�ral, �a ne peut pas faire de mal de tous les t�l�charger et de les r�installer au cas o�, car vous pouvez avoir une ancienne version sur votre machine.
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 syst�me
dans /usr/local
par exemple, ou faire pointer les applications qui en
ont besoin vers celui-ci.
Les RPM installeront OpenSSL dans le r�pertoire du syst�me.
Cr�ez un r�pertoire rsaref-2.0 o� vous le souhaitez.
Personnellement, j'ai utilis�
/usr/src/apache/modules/mod_ssl-blah/depend/
.
D�placez vous dans ce r�pertoire.
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 r�f�rence, configurez votre script dans ce r�pertoire.
D�compressez mm-1.0.12 (ou une version plus r�cente) dans le
sous-r�pertoire 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, r�f�rencez le r�pertoire quand vous en aurez besoin. Vous pouvez aussi installer cette librairie sur le syst�me.
La proc�dure normale avec apxs est de compiler Apache en premier, puis, en utilisant apxs, de compiler les modules que vous souhaitez utiliser et de les ins�rer 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 enti�rement.
Allez dans le r�pertoire o� vous avez compil� mod_ssl et ex�cutez les commandes suivantes pour la premi�re 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 m�me temps.
Ces lignes de configuration donnent deux exemples de comment votre syst�me
peut �tre configur�.
Dans mon cas, OpenSSL �tait d�j� install� quelque part (probablement dans
/usr/lib
, /usr/include
).
Par cons�quent, je n'ai pas eu besoin de lui passer en param�tre le r�pertoire,
contrairement � rsa and mm qui n'�taient pas d�j� pr�sent. J'ai donc du les
compiler et laisser les sources dans leur r�pertoire (ne faites pas de
make install ni rien).
Dans ce cas, vous devez indiquer lors du � configure � le r�pertoire
ad�quate pour qu'il puisse trouver les en-t�te et les libraires.
� ce point, � moins que vous ne mettiez � niveau Apache (auquel cas, vous devrez refaire le point pr�c�dent 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 pr�c�de. Puis ex�cutez :
make
make install
make distclean
pour mettre fin � l'installation.
Note : MM n'est pas n�cessaire pour compiler mod_ssl. Si vous avez des probl�mes, ne le compilez pas et enlevez-le des param�tres de � ./configure �.
Quand j'ai compil� mod_ssl, j'ai eu des erreurs avec DBM. Pour r�sourdre cela, j'ai ajout� -lndbm dans le Makefile :
LIBS_SHLIB=-lm -lcrypt -lndbdm
Ainsi, vous ne devriez plus avoir de probl�me.
D�sarchivez apache-1.3.12.tar.gz dans /usr/src/apache
ou autre
part.
Ensuite, vous devez compiler Apache avec les options suivantes :
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 r�pertoire
que vous avez sp�cifier avec --prefix
. V�rifez 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 d�but, et v�rifiez que vous n'avez rien oubli�.
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 d�tails de l'installation de MySQL. Mais vous pouvez t�l�charger 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.
Vous allez maintenant compiler php-3.0.15 comme une biblioth�que, ce qui veut dire que c'est un module qui peut �tre d�marr� ou arr�t� ind�pendamment du serveur. C'est ainsi plus facile de mettre � niveau php sans avoir � tout recompiler (ce qui peut �tre p�nible si vous utilisez beaucoup de modules avec Apache).
Dans mon installation d'Apache, php utilise gd pour cr�er des images et d'autres choses. J'utilise une vieille version de gd (install�e via RPM) pour faire la liaison avec php. Comme cela, on peut utiliser des fichiers GIF en sortie. Cela n'est peut �tre pas tr�s bien vis � vis des copyright, ainsi vous devriez utiliser une version sup�rieure � 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 syst�me.
Si vous voulez avoir le support IMAP, la proc�dure est similaire � gd. J'ai aussi utilis� un RPM puisque je suis sur une Red Hat, mais l'installer � partir des sources est une proc�dure assez simple :
./configure
make
make install
Vous pouvez aussi installer OpenLDAP � partir de RPM ou des sources. J'ai choisi de le faire � partir des sources, car la derni�re 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).
Maintenant que les modules ci-dessus sont install�s et qu'ils fonctionnent, vous pouvez compiler php comme une biblioth�que. 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 s�r que si vos libraries --with
ne sont pas install�es
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 entr�es n�cessaires dans httpd.conf et activer php3.
Cette section explique l'installation de mod_perl comme une biblioth�que d'Apache. Il y a beaucoup de modules perl (en plus, bien s�r, de perl5 que je suppose vous avez d�j� install�) qui doivent �tre ajout�s avant mod_perl pour compiler sans probl�mes. 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 d�pendent d'autres, j'ai donc �num�r� l'ordre dans lequel je les ai install� sans probl�me.
Les modules perl peuvent �tre trouv�s aux url donn�es plus haut dans ce document. T�l�chargez-les et mettez-les o� vous le souhaitez ou dans le r�pertoire que j'ai utilis� (voir aussi arborescense utilis�e). L'installation d'un module est simple. Apr�s l'avoir d�sarchiv� dans le r�pertoire (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 s�r vous pouvez lire les fichiers README en cas d'erreurs.
Voici l'ordre de l'installation des modules n�cessaires pour mod_perl :
Apr�s avoir install� les modules perl, vous �tes pr�t pour compiler et installer mod_perl dans Apache. Allez dans le r�pertoire 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 biblioth�que en utilisant apxs (dans le r�pertoire que vous devez sp�cifier). Apr�s, vous n'avez plus qu'� faire :
make
make install
Ainsi, mod_perl sera d�plac� dans le r�pertoire appropri�, et les lignes ajout�es � votre fichier httpd.conf.
mod_auth_mysql permet � Apache d'acc�der � la base utilisateur MySQL. L'installation comme une biblioth�que n'est pas tr�s bien document�e dans le fichier README, mais c'est possible.
Premi�rement, allez dans le r�pertoire o� vous avez extrait mod_auth_mysql.
Normalement, vous avez MySQL d'install� (avec les fichiers d'en-t�te, etc.).
Regardez o� sont install�es les libraries MySQL et les fichiers d'en-t�te.
Dans le doute, v�rifiez 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 gr�ce � 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'ex�cuter en super-utilisateur (root) si vous n'avez pas les droits de lecture/�criture sur le r�pertoire d'Apache.
Dans mon �cole, le r�seau 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 stock�s. Chacun peut monter ses r�pertoires � partir du serveur Linux, ainsi on peut prot�ger les donn�es avec les informations du compte Netware. Avec ce module, Apache peut faire l'authentification � travers le r�seau Netware.
Pour compiler mod_auth_nds, il faut que ncpfs soit install� (ainsi que les fichiers d'en-t�te). 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.
Si ncpfs est install�, en lancant les commandes suivantes, cela devrait compiler mod_auth_nds comme une biblioth�que :
/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'� red�marrer Apache !
L'installation de mod_fastcgi est n�cessaire si vous voulez acc�der � votre serveur Zope avec Apache. C'est plus pratique, car Apache est plus s�curis� 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 r�pertoire 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.
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 tr�s 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.
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-HOWTO, dont le document m'a beaucoup aid�.
Si vous avez trouv� des fautes de frappe ou de grammaire dans ce document, n'h�sitez 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
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 pr�sent� ci-dessus, ainsi que les scripts d'installation.