<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">

<article>
  <artheader>
    <title>Apache Compile HOWTO</title>
    <author>
      <firstname>Luc</firstname>
      <surname>de Louw</surname>
      <affiliation>
        <address>
		<email>luc at delouw.ch</email>
        </address>
      </affiliation>
     </author>
<revhistory>

<revision>
   <revnumber>1.9.15</revnumber>
   <date>2002-06-20</date>
   <revremark>Mise à jour mod_ssl-2.8.9-1.3.26, enlevé le correctif temporaire.
   </revremark>
</revision>


<revision>
   <revnumber>1.9.14</revnumber>
   <date>2002-06-19</date>
   <revremark>Mise à jour vers Apache 1.3.26 suite à la découverte du trou de sécurité CERT CA-2002-17. Il est fortement recommandé aux administrateurs d'appliquer 
   	cette mise à jour immédiatement. Ajout (temporaire) d'un correctif pour faire fonctionner mod_ssl 2.8.8 avec la 1.3.26. Ajout de --without-debug dans la commande configure de mysql
		
   </revremark>
</revision>

<revision>
   <revnumber>1.9.13</revnumber>
   <date>2002-06-15</date>
   <revremark>Mises à jours des logiciels mentionné par le HOWTO, ajout de la procédure pour forcer l'adresse IP d'écoute de MySQL, quelques modifications mineures

   </revremark>
</revision>


<revision>
   <revnumber>1.9.12</revnumber>
   <date>2002-04-22</date>
   <revremark>Ajout de mod_gzip et mod_gunzip, correction de coquilles, mises à jours des logiciels mentionné par le HOWTO, séparation des modules additionnels 
   	dans une section.
   </revremark>
</revision>

<revision>
   <revnumber>1.9.11</revnumber>
   <date>2002-04-07</date>
   <revremark>Correction de coquilles (non techniques), mises à jours des logiciels mentionné par le HOWTO
   </revremark>
</revision>

<revision>
   <revnumber>1.9.11-pre1</revnumber>
   <date>2002-03-15</date>
   <revremark>Corrections grammaticales, mises à jours des logiciels mentionné par le HOWTO
   </revremark>
</revision>

<revision>
   <revnumber>1.9.10-1</revnumber>
   <date>2002-03-17</date>
   <revremark>Ajout de r&eacute;f&eacute;rences
   </revremark>
</revision>

       
<revision>
   <revnumber>1.9.9 (&eacute;bauche) </revnumber>
   <date>2002-02-11</date>
   <revremark>Correction d'un bug majeur dans la configuration de openssl, ajout de r&eacute;f&eacute;rences
   </revremark>
</revision>

<revision>
    <revnumber>1.9.8</revnumber>
    <date>2002-02-08</date>
    <revremark>Mise &agrave; jour des versions de logiciels de ce HOWTO, correction de bugs</revremark>
</revision>


<revision>
    <revnumber>1.9.7</revnumber>
    <date>2001-12-26</date>
    <revremark>Mise &agrave; jour des versions de logiciels de ce HOWTO, tests des proc&eacute;dure du HOWTO sur Linux sur 
    IBM S/390 (zSeries)
                Machines (voir "plates-formes" pour plus d'informations),
                Ajout du support de base de Tomcat (Binaires uniquement)</revremark>
</revision>

<revision>
    <revnumber>1.9.6</revnumber>
    <date>2001-10-27</date>
    <revremark>Mise &agrave; jour des versions de logiciels de ce HOWTO, correction de bugs</revremark>
</revision>

<revision>
    <revnumber>1.9.5</revnumber>
    <date>2001-08-27</date>
    <revremark>D&eacute;j&agrave; une nouvelle r&eacute;-&eacute;criture au format Docbook 3.1</revremark>
</revision>

<revision>
    <revnumber>1.9.4</revnumber>
    <date>2001-08-26</date>
    <revremark>Mise &agrave; jour des versions de logiciels de ce HOWTO, correction de quelques coquilles</revremark>
</revision>

<revision>
    <revnumber>1.9.3</revnumber>
    <date>2001-06-23</date>
    <revremark>Version actuelle 2.0.0-pre3 au format Linux DocBook</revremark>
</revision>

<revision>
    <revnumber>1.0.0</revnumber>
    <date>2000-08-05</date>
    <revremark>Premi&egrave;re &eacute;dition au format HTML</revremark>
</revision>

</revhistory>


     
    <abstract>
      <indexterm>
        <primary>Apache, mod_perl, mod_dav, mod_auth_ldap, mod_dynvhost, mod_roaming, mod_jserv, et mod_php</primary>
      </indexterm>
      <para>
Cette proc&eacute;dure explique comment compiler le serveur Web Apache avex les 
modules les plus importants comme mod_perl, mod_dav, mod_auth_ldap, 
mod_dynvhost, mod_roaming, mod_jserv et mod_php.

      </para>
    </abstract>

  </artheader>

  <sect1 id="intro">
    <title>Introduction</title>

      <sect2>
	<title>Contributeurs et contacts</title>
	<para>
	Je voudrai tout d'abord remercier tous ceux qui m'ont envoy&eacute; leurs questions et suggestions et qui ont rendu 
	possible l'&eacute;criture de ce document. Cela m'a montr&eacute; combien il est important de partager le savoir.
	Je vous encourage &agrave; m'envoyer d'autres suggestions par email &agrave;  <email>luc at delouw.ch</email>
	</para>
      </sect2>

      <sect2>
	<title>Pourquoi avoir &eacute;crit ce document</title>
	<para>
	Toutes les distributions Linux que j'ai test&eacute;es ont une mauvais configuration de Apache. De plus, les versions 
	de Apache sont la plupart du temps d&eacute;su&egrave;tes.
	</para>
	<para>
	Enfin, aucun Unix commercial n'est fourni avec Apache pr&eacute;-install&eacute; (pourquoi ?)
	</para>
	<para>
	Depuis que j'installe des serveurs Webs personnalis&eacute;s sur diff&eacute;rents Un*x, j'ai &eacute;crit un document texte que 
	j'ai publi&eacute; sur mon site web personnel pour y acc&eacute;der depuis mon travail. Plus tard, un ami a envoy&eacute; l'URL &agrave; 
	une mailing-list, et les premi&egrave;res questions sont arriv&eacute;es. Ainsi, j'ai d&eacute;cid&eacute; d'en rajouter.
	</para>
	<para>
	Enfin, j'ai c&eacute;d&eacute; aux multiples requ&ecirc;tes qui m'ont &eacute;t&eacute; adress&eacute;es pour faire de ce document un HOWTO 
	&ldquo;official&rdquo;.
	</para>
      </sect2>

      <sect2>
	<title>Qu'est-ce que ce document est cens&eacute; &ecirc;tre</title>
	<para>
	Pour compiler tous les logiciels cit&eacute;s tout au long de ce document, il faudrait connaitre un grand nombre 
	d'options de compilation dont personne ne peut se rappeler. Ce document est donc une proc&eacute;dure 
	&ldquo;pr&ecirc;te &agrave; copier-coller&rdquo; pour compiler Apache et compagnie...
	</para>
	<para>
	Le second objectif de ce document et d'enseigner comment b&acirc;tir un serveur Web Apache avec toutes ses 
	fonctionnalit&eacute;s et ind&eacute;pendement des distributions Linux.
	</para>
      </sect2>

      <sect2>
	<title>Ce que ce document se fera pas pour vous</title>
	<para>
	Ce n'est qu'un document et pas un script qui fera le travail pour vous. Vous devrez faire les choses par 
	vous-m&ecirc;me &eacute;tape par &eacute;tape.
	</para>
      </sect2>

      <sect2>
	<title>Plates-formes</title>
	<para>
	Le Document original que j'avais &eacute;crit concernait les principales plates-formes Un*x. D&eacute;sormais, chaque 
	plate-forme dispose de son propre HOWTO. Vous trouverez donc des documents pour les plates-formes:
	</para>
	  <itemizedlist>
		<listitem><para>Linux (Ce document)</para></listitem>
		<listitem><para>IBM AIX 4.3 et 5.1L</para></listitem>
		<listitem><para>Sun Solaris 6/7/8</para></listitem>
		<listitem><para>Hewlett-Packard HPUX 11</para></listitem>
		<listitem><para>&lcub;Free|Net|Open&rcub;-BSD</para></listitem>
	</itemizedlist>

	<para>
	NB pour les utilisateurs de Linux sur IBM S/390 (zSeries): postgres et Jserv ne se compileront pas sur 
	ce syst&egrave;me.
	Tous les autres programmes ou modules mentionn&eacute;s dans ce HOWTO fonctionnent imp&eacute;cablement.
	</para>
	<para>
	Autres Un*x: Pourquoi ne pas me cr&eacute;er un compte sur votre plate-forme Un*x ?
	</para>
	<para>
	Windows: D&eacute;sol&eacute; mais je suis trop jeune pour mourrir ;-)
	</para>
      </sect2>

  <sect2 id="copyright">
   <title>Copyright Information</title>

   <para>
    Note du traducteur : Afin d'&eacute;viter de mauvaises interpr&eacute;tation des mentions ci-apr&egrave;s qui modifieraient leur sens, 
    le traducteur a volontairement omis de traduire le paragraphe ci-apr&egrave;s.
   </para>
   
   <para>
    This document is copyrighted (c) 2000, 2001, 2002 Luc de Louw and is
    distributed under the terms of the Linux Documentation Project
    (LDP) license, stated below.
   </para>

   <para>
    Unless otherwise stated, Linux HOWTO documents are
    copyrighted by their respective authors. Linux HOWTO documents may
    be reproduced and distributed in whole or in part, in any medium
    physical or electronic, as long as this copyright notice is
    retained on all copies. Commercial redistribution is allowed and
    encouraged; however, the author would like to be notified of any
    such distributions.
   </para>

   <para>
    All translations, derivative works, or aggregate works
    incorporating any Linux HOWTO documents must be covered under this
    copyright notice. That is, you may not produce a derivative work
    from a HOWTO and impose additional restrictions on its
    distribution. Exceptions to these rules may be granted under
    certain conditions; please contact the Linux HOWTO coordinator at
    the address given below.
   </para>

   <para>
    In short, we wish to promote dissemination of this
    information through as many channels as possible. However, we do
    wish to retain copyright on the HOWTO documents, and would like to
    be notified of any plans to redistribute the HOWTOs.
   </para>

   <para>
    If you have any questions, please contact
    <email>linux-howto at metalab.unc.edu</email>
   </para>
  </sect2>

  <sect2 id="disclaimer">
   <title>Disclaimer</title>

   <para>
    No liability for the contents of this documents can be accepted.
    Use the concepts, examples and other content at your own risk.
    As this is a new edition of this document, there may be errors
    and inaccuracies, that may of course be damaging to your system.
    Proceed with caution, and although this is highly unlikely,
    the author(s) do not take any responsibility for that.
   </para>

   <para>
    All copyrights are held by their by their respective owners, unless
    specifically noted otherwise.  Use of a term in this document
    should not be regarded as affecting the validity of any trademark
    or service mark.
   </para>

   <para>
    Naming of particular products or brands should not be seen
    as endorsements.
   </para>

   <para>
    You are strongly recommended to take a backup of your system
    before major installation and backups at regular intervals.
   </para>
  </sect2>

  <sect2 id="newversions">
   <title>Nouvelles Versions</title>

    <indexterm>
     <primary>(your index root)!news on</primary>
    </indexterm>

   <para>
    Ceci est la 13&egrave;me &eacute;dition.
   </para>

    <para>
	Les annonces de nouvelles versions de ce document seront publi&eacute;es sur 
	<ulink url="http://freshmeat.net/apacompile">http://freshmeat.net/apacompile</ulink>
    </para>

   <para>
    Vous pouvez trouver la dern&egrave;re version de ce document sur 
    <ulink url="http://www.delouw.ch/linux">http://www.delouw.ch/linux</ulink>
   </para>

   <para>
   </para>

   <para>
   <itemizedlist>
    <listitem>
     <para>
      <ulink url="http://www.delouw.ch/linux/FR-Apache-Compile-HOWTO/html/index.html">HTML</ulink>.
     </para>
    </listitem>

 <listitem>
     <para>
      <ulink url="http://www.delouw.ch/linux/FR-Apache-Compile-HOWTO/FR-Apache-Compile-HOWTO.ps">Postscript (ISO A4 format)</ulink>.
     </para>
    </listitem>

    <listitem>
     <para>
       <ulink URL="http://www.delouw.ch/linux/FR-Apache-Compile-HOWTO/FR-Apache-Compile-HOWTO.pdf">Acrobat PDF</ulink>.
     </para>
    </listitem>

    <listitem>
     <para>
       <ulink URL="http://www.delouw.ch/linux/FR-Apache-Compile-HOWTO/FR-Apache-Compile-HOWTO.sgml">SGML Source</ulink>.
     </para>
    </listitem>

    <listitem>
     <para>
      <ulink url="http://www.delouw.ch/linux/FR-Apache-Compile-HOWTO/FR-Apache-Compile-HOWTO.html.tar.gz">HTML gzipped tarball</ulink>.
     </para>
    </listitem>
   </itemizedlist>
   </para>

  </sect2>

  <sect2 id="credits">
   <title>Remerciements</title>

   <para>
    Je voudrais remercier tous ceux &agrave; <email> discuss (at) linuxdoc.org</email> pour m'avoir encourag&eacute; dans l'&eacute;criture 
    des HOWTO.
   </para>

  </sect2>

<!-- Section2: feedback -->

  <sect2 id="feedback">
   <title>Retours</title>

   <para>
    Vos remarques sur ce document sont les bienvenues. Sans vous, ce document n'existerait pas. N'h&eacute;sitez pas &agrave; m'envoyer 
    vos compl&eacute;ments, suggestions ou critiques &agrave; l'adresse : <email>luc at delouw.ch</email>.
   </para>
   </sect2>

<!-- Section2: translations -->

  <sect2 id="translations">
   <title>Traductions</title>

   <para>
        L'original est &eacute;crit en langue anglaise.

	<ulink url="http://www.delouw.ch/linux/Apache-Compile-HOWTO/html/index.html">Original en anglais</ulink>

   </para>
   <para>
	Le traducteur &agrave; l'origine de la version française tient &agrave; conserver l'anonymat.
   </para>

   <itemizedlist>
                <listitem>
                        <para>
                        <ulink url="http://www.delouw.ch/linux/DE-Apache-Compile-HOWTO/html/index.html">Allemand</ulink>
                        </para>
                </listitem>

    </itemizedlist>


   <para>
   	Toute nouvelle traduction est la bienvenue. Si vous avez traduit ce document, faites le moi savoir afin que 
   	je la r&eacute;f&eacute;rence ici.
   </para>

   </sect2>

<sect2><title>A propos de l'auteur</title>
<para>Luc a 29 ans et touche &agrave; l'informatique depuis 20 ans.
Il est actuellement Ing&eacute;nieur syst&egrave;me Unix pour une soci&eacute;t&eacute; Internet localis&eacute;e &agrave; Kloten (Zurich) en Suisse. 
Son centre d'int&eacute;r&ecirc;t principal est de d&eacute;velopper toutes sortes de syst&egrave;mes innovants sur Linux (et autres Un*x). 

Enfin, toutes les t&acirc;ches &ldquo;impossible&rdquo; sur les diff&eacute;rents Un*x finissent sur son bureau.
(et il adore &ccedil;a!)</para>

</sect2>

</sect1>

<sect1 id="prereqs">
<title>Pr&eacute;requis</title>


<sect2><title>G&eacute;n&eacute;ralit&eacute;s</title>
<itemizedlist>
<listitem><para>flex 2.54</para></listitem>
<listitem><para>bison 1.28</para></listitem>
<listitem><para>autoconf 2.52</para></listitem>
<listitem><para>automake 1.4</para></listitem>
<listitem><para>libtool 1.4</para></listitem>
<listitem><para>yacc-91.7.30</para></listitem>
<listitem><para>freetype2-devel</para></listitem>
<listitem><para>re2c (si PHP est compilé à partir de l'arborescense CVS)</para></listitem>
</itemizedlist>

<para>A suivre</para>

<para>
Toutes les principales distributions incluent ces prérequis 

</sect2>

<sect2><title>Sp&eacute;cificit&eacute; de distributions</title>

<sect3><title>SuSE Linux</title>
 
<sect4><title>SuSE Linux 7.1 (peut-&ecirc;tre applicable &agrave; d'autres distributions)</title>
<para>SuSE 7.1 et peut-&ecirc;tre d'autres distributions ont des probl&egrave;mes pour compiler apache 1.3.19
(1.3.20 et ult&eacute;rieurs sont corrig&eacute;s) avec mod_rewrite</para>
 
<para>Pour corriger ce probl&egrave;me, cr&eacute;ez un lien symbolique:</para>
 
<screen>cd /usr/include/db1
ln -s ../ndbm.h ndbm.h
</screen>
 
<para>A partir de SuSE 7.2, ce probl&egrave;me est corrig&eacute;</para>
</sect4>
</sect3>
</sect2>

<sect2><title>OpenSSL</title>
 
<sect3><title>Qu'est-ce qu'OpenSSL, ?</title>
<para>Extrait du site www.openssl.org</para>
<para><emphasis>
Le projet OpenSSL est un effort collaboratif pour d&eacute;velopper une impl&eacute;mentation robuste, fiable et compl&egrave;te
(incluant un toolkit libre) des protocoles Secure Sockets Layer (SSL v2/v3) et Transport Layer Security (TLS v1).
Le projet est men&eacute; par une communaut&eacute; mondiale de volontaires qui utilisent Internet pour communiquer,
plannifier et d&eacute;velopper la bo&icirc;te &agrave; outils OpenSSL ainsi que ses documentations.</emphasis></para>
<para><emphasis>OpenSSL est bas&eacute; sur l'excellente librairie SSLeay d&eacute;velopp&eacute;e par Eric A. Young et Tim J. Hudson.
La bo&icirc;te &agrave; outils OpenSSL est diffus&eacute; sous licence d'utilisation du m&ecirc;me type que celle d'Apache, qui signifie, en r&eacute;sum&eacute;,
que vous &ecirc;tes libres de la r&eacute;cup&eacute;rer et de l'utiliser &agrave; des fins commerciales ou non &agrave; des conditions tr&egrave;s simples.</emphasis></para>
<para><emphasis>Du point de vue des auteurs, il s'agit de la base pour b&acirc;tir un serveur Unix sûr avec des logiciels Opensource.
La plupart des produits comme mod_ssl, OpenSSH et de nombreux autres qui chiffrent des donn&eacute;es, n&eacute;cessitent OpenSSL.</emphasis></para>
 
<para>OpenSSL fournit non seulement les librairies et les fichiers d'ent&ecirc;te n&eacute;cessaires aux produits mentionn&eacute;s ci-dessus,
mais &eacute;galement une application pour cr&eacute;er des certificats client ou serveur.</para>
</sect3>
 
<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine 
<ulink url="http://www.openssl.org">http://www.openssl.org</ulink>
</para>
</sect3>
 
<sect3><title>Compilation et installation</title>
 
<screen>cd /usr/local
tar -xvzf openssl-0.9.6d.tar.gz
 
cd openssl-0.9.6d
 
./config shared 
 
make
make test
make install

echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
ldconfig
</screen>
 
</sect3>
 
</sect2>

<sect2><title>MySQL</title>
 
<sect3><title>Qu'est-ce que MySQL ?</title>
<para>
MySQL est une base de donn&eacute;es tr&egrave;s rapide, puissante et facile &agrave; g&eacute;rer.</para>
 
<para>MySQL est particuli&egrave;rement adapt&eacute; aux applications Web dont
les donn&eacute;es sont essentiellement acc&eacute;d&eacute;es en lecture. Les versions
r&eacute;centes sont aussi capable de g&eacute;rer des transactions. Si vos applications
Web doivent &eacute;crire beaucoup de donn&eacute;es, Postgres pourrait &ecirc;tre un meilleur choix.</para>
 
<para>Vous aurez besoin de l'API C de MySQL pour compiler PHP si vous voulez le support
de MySQL dans PHP. Vous en aurez &eacute;galement besoin si vous souhaitez installer mod_authmysql
(voir section <xref linkend="authmysql"> pour plus d'informations)</para>
</sect3>
 
<sect3><title>T&eacute;l&eacute;chargement</title>
<para>
Site d'origine: <ulink url="http://www.mysql.com/downloads/">http://www.mysql.com/downloads/</ulink>
</para>
</sect3>

<sect3><title>Compilation et installation</title>
<screen>

cd /usr/local
tar -xvzf mysql-3.23.51.tar.gz 
cd mysql-3.23.51

./configure \
--prefix=/usr/local/mysql \
--enable-assembler \
--with-innodb \
--without-debug

make 
make install 

/usr/local/mysql/bin/mysql_install_db
echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf 
ldconfig

</screen>

<para>
Pour des raisons de s&eacute;curit&eacute;, ajoutez un utilisateur sur votre syst&egrave;me pour MySQL (par exemple "mysql"), puis
</para>
<screen>

chown -R mysql /usr/local/mysql/var

</screen>
<para>
et changez la ligne user=root par user=mysql dans le fichier /usr/local/mysql/bin/safe_mysqld
</para>

<para>
Si vous souhaitez d&eacute;marrer automatiquement MySQL au d&eacute;marrage, copiez /usr/local/mysql/share/mysql/mysql.server dans /etc/init.d/ (ou &agrave; l'endroit o&ugrave; se trouvent vos scripts rc) et cr&eacute;ez les liens symboliques correspondants dans les r&eacute;pertoires des diff&eacute;rents niveaux d'ex&eacute;cution.
</para>
</sect3>

<sect3><title>Securisation MySQL</title>

<para>Ce point est optionnel et explique comment forcer le daemon MuSQL a n'écouter que sur l'adresse IP locale du serveur</para>

<para>I suggère de ne laisser MySQL ecouter que sur l'adresse de loopback 127.0.0.1. Ainsi vous êtes certains que personne ne pourra se connecter à 
        votre daemon MySQL via le réseau. Bien entendu, cela n'a de sens que si MySQL est exécuté sur la même machine que le serveur web.</para>

        <para>
        Modifier la ligne 107 de <filename>/etc/init.d/mysql.server</filename> comme suit :</para>

        <para>Ligne originale:</para>


<screen>
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file&
</screen>

        <para>à remplacer par :</para>

<screen>
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file \
--bind-address=127.0.0.1&
</screen>

</sect3>


</sect2>

<sect2><title>Compiler mm</title>
 
<sect3><title>Qu'est-ce que mm ?</title>
<para>Extrait du site www.engelschall.com</para>
<para>La librairie MM est une librairie qui simplifie l'utilisation de la m&eacute;moire partag&eacute;e
entre plusieurs processus "fork&eacute;s" sous Unix. Une premi&egrave;re couche masque toutes les diff&eacute;rences d'impl&eacute;mentations
entre les plates-formes (allocation et verrouillage) lors de la gestions des segments de m&eacute;moire partag&eacute;e. Une
seconde couche fournit une API dans le style de malloc(3) mais de haut niveau permettant de travailler simplement
avec des structures de donn&eacute;es dans les segments de m&eacute;moire partag&eacute;e.</para>
<para>Du point de vue des auteurs:</para>
<para>C'est une librairie commune qui simplifie les acc&egrave;s aux shm par les programmeurs. Elle est tr&egrave;s utilis&eacute;e, en particulier par PHP et mod_ssl</para>
<para>Puisque l'auteur n'est pas un programmeur, il est incapable d'expliquer l'utilisation exacte de ce truc</para>
</sect3>
 
<sect3><title>T&eacute;l&eacute;chargement</title>
<para>Site d'origine: <ulink url="http://www.engelschall.com/sw/mm/mm-1.1.3.tar.gz">http://www.engelschall.com/sw/mm/mm-1.1.3.tar.gz</ulink>
</para>
</sect3>
 
<sect3><title>Compilation et Installation</title>
 
<screen>cd /usr/local
 
tar -xvzf mm-1.1.3.tar.gz
 
cd mm-1.1.3
 
./configure
make
make test
make install

ldconfig
 
</screen>
</sect3>
 
</sect2>

</sect1>


<sect1 id="apache">
<title>R&eacute;cup&eacute;rer, compiler et installer Apache avec ses modules de base</title>

<sect2><title>R&eacute;cup&eacute;rer les sources de Apache</title>

<sect3><title>Qu'est-ce qu'Apache ?</title>

<para>Extrait du site www.apache.org</para>
<para>Le projet Apache est un effort de d&eacute;veloppement collaboratif d'un logiciel qui vise &agrave; fournir un serveur HTTP (Web)
robuste, rivalisant avec des produits commerciaux, fonctionnel et dont le code source est libre. Le projet est
men&eacute; conjointement par un groupe de volontaires des quatre coins du monde, utilisant Internet et le Web pour communiquer,
plannifier et d&eacute;velopper le serveur et sa documentation. Ces volontaires sont connus sous le nom de Apache Group. De plus,
des centaines d'utilisateurs ont contribu&eacute;s aux id&eacute;es, au code et &agrave; la documentation du projet. Ce fichier a vocation &agrave;
d&eacute;crire rapidement l'histoire de Apache Group et d'en faire connaitre les contributeurs.</para>
<para>Du point de vue des auteurs:</para>
<para>C'est simplement le meilleur serveur Web, sa configuration est tr&egrave;s souple et permet de s'adapter au mieux &agrave; vos
besoins, et il est E-X-T-R-E-M-E-M-E-N-T stable ! Je n'ai personnellement jamais v&eacute;cu de plantage en environnement de
production (=sans trucs exp&eacute;rimentaux).
</para>
<para>Que celui qui a exp&eacute;riment&eacute; un plantage m'envoie un rapport d'incident par email pour que je le publie ici...</para>
</sect3>

<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine
<ulink url="http://www.apache.org/dist/httpd/">http://www.apache.org/dist/httpd/</ulink>

<screen>cd /usr/local/

tar -xvzf apache_1.3.26.tar.gz

</screen>
</para>
</sect3>

<sect3><title>Correctif pour les tr&egrave;s gros sites</title>
<para>
	Si votre serveur web doit répondre à un grand nombre de requêtes simultanées et que votre machine est suffisament puissante pour supporter ces requêtes, 
	vous pouvez changer le nombre maximal de processus
</para>

<para>T&eacute;l&eacute;charger le correctif depuis : <ulink url="http://www.delouw.ch/linux/apache-patch_HARD_SERVER_LIMIT.txt">
http://www.delouw.ch/linux/apache-patch_HARD_SERVER_LIMIT.txt</ulink></para>

<screen>
--- httpd.h     Thu Mar 21 18:07:34 2002
+++ httpd.h-new Sun Apr  7 13:34:11 2002
@@ -320,7 +320,7 @@
 #elif defined(NETWARE)
 #define HARD_SERVER_LIMIT 2048
 #else
-#define HARD_SERVER_LIMIT 256
+#define HARD_SERVER_LIMIT 512
 #endif
 #endif

</screen>

<para>Ce correctif accro&icirc;t le nombre maximum d'acc&egrave;s concurrents &agrave; 512. N'h&eacute;sitez pas &agrave; l'augmenter encore
si vous avez taill&eacute; un noyau pour et si vous avez &eacute;dit&eacute; votre /etc/security/limits.conf (RÉSERVÉ aux
administrateurs exp&eacute;riment&eacute;s). De mauvais param&egrave;tres pourraient provoquer un &ldquo;auto-attaque d&eacute;ni de
service&rdquo;!! Assurez vous de r&eacute;partir correctement les ressources du syst&egrave;me.</para>


<para>Appliquer le patch comme suit:</para>
<screen>
cd /usr/local/apache_1.3.26/src/include

patch -p0 &lt; apache-patch_HARD_SERVER_LIMIT.txt

</screen>
</sect3>
</sect2>

<sect2><title>mod_ssl</title>

<sect3><title>Qu'est-ce que mod_ssl ?</title>
<para>Extrait du site www.modssl.org</para>
<para>Ce module fournit des fonctions de chiffrement fort aux serveurs Web Apache 1.3 via les protocoles SSL v2/v3
et TLS v1 en s'appuyant sur OpenSSL.</para>


<para>Du point de vue des auteurs:</para>
<para>Ce module est n&eacute;cessaire pour que Apache puisse traiter des requ&ecirc;tes SSL (https). Il modifie
le code source d'Apache et etend son API</para>

<para>Assurez vous que tous les autres modules pour votre serveur Apache sont compil&eacute; avec l'option de compilation
-DEAPI sans quoi votre serveur Web plantera ou refusera de d&eacute;marrer</para>

<para>Presque tous les modules que je connais le font par eux m&ecirc;me sauf mod_jserv et mod_jk</para>
</sect3>

<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="http://www.modssl.org">http://www.modssl.org</ulink></para>
</sect3>

<sect3><title>Appliquer le correctif aux sources de Apache</title>
<screen>cd /usr/local/

tar -xvzf mod_ssl-2.8.9-1.3.26.tar.gz
cd mod_ssl-2.8.9-1.3.26/

./configure --with-apache=/usr/local/apache_1.3.26 

</screen>

</sect3>

</sect2>

<sect2><title>mod_perl</title>

<sect3><title>Qu'est-ce que mod_perl ?</title>
<para>Extrait du site perl.apache.org</para>
<para>Avec mod_perl, il est possible d'&eacute;crire des modules Apache int&eacute;gralement en Perl. De plus,
l'interpr&eacute;teur persistant inclus dans le serveur &eacute;vite la perte de temps inh&eacute;rente au d&eacute;marrage 
d'un interpr&eacute;teur externe.</para>
<para>Du point de vue des auteurs:</para>
<para>mod_perl est une sorte de substitut pour les cgi-bin. Les cgi d&eacute;clenchent un 'fork' &agrave; chaque
requ&ecirc;te qui induit une perte de temps. Avec mod_perl, l'interpr&eacute;teur Perl est charg&eacute; par le serveur 
Apache et persistant. Les requ&ecirc;tes ne n&eacute;cessitent plus de 'fork'.</para>
</sect3>

<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="http://www.apache.org/dist/perl">http://www.apache.org/dist/perl</ulink></para>
</sect3>

<sect3><title>Compilation et installation</title>
<screen>cd /usr/local

tar -xvzf mod_perl-1.27.tar.gz

cd mod_perl-1.27

perl Makefile.PL &bsol;
EVERYTHING=1 &bsol;
APACHE_SRC=../apache_1.3.26/src &bsol;
USE_APACI=1 &bsol;
PREP_HTTPD=1 &bsol;
DO_HTTPD=1

make
make install

</screen>

<para>NB: Ne compilez pas mod_perl en DSO! Aux derni&egrave;res nouvelles, Apache planterait (je n'ai jamais test&eacute;)</para>
</sect3>

</sect2>

<sect2><title>Configuragation et compilation de Apache</title>
<para>Les deux modules statiques (mod_ssl et mod_perl) sont maintenant configur&eacute;s et le source d'Apache a &eacute;t&eacute; modifi&eacute;.</para>

<sect3><title>Compilation et installation</title>


<screen>

EAPI_MM=&quot;/usr/local/mm-1.1.3&quot; SSL_BASE=&quot;/usr/local/ssl&quot; &bsol;
./configure &bsol;
--enable-module=unique_id &bsol;
--enable-module=rewrite &bsol;
--enable-module=speling &bsol;
--enable-module=expires &bsol;
--enable-module=info &bsol;
--enable-module=log_agent &bsol;
--enable-module=log_referer &bsol;
--enable-module=usertrack &bsol;
--enable-module=proxy &bsol;
--enable-module=userdir &bsol;
--enable-module=so &bsol;
--enable-shared=ssl &bsol;
--enable-module=ssl &bsol;
--activate-module=src/modules/perl/libperl.a &bsol;
--enable-module=perl

make
make install

</screen>
</sect3>

<sect3><title>Creation de ceritificats SSL auto-sign&eacute;s</title>
<screen>

cd /usr/local/ssl/bin

./openssl req -new &gt; new.cert.csr
./openssl rsa -in privkey.pem -out new.cert.key
./openssl x509 -in new.cert.csr -out new.cert.cert \
-req -signkey new.cert.key -days 999

cp new.cert.key /usr/local/apache/conf/ssl.key/server.key
cp new.cert.cert /usr/local/apache/conf/ssl.crt/server.crt

</screen>
<para>
N.B.: OpenSSL demande plusieurs renseignements. Un erreur courante est de donner au mauvais &quot;common name&quot;.
A cet endroit, vous devez mettre le nom complet de votre serveur, par exemple www.foo.org</para>
</sect3>
</sect2>
</sect1>

<sect1 id="modules">
<title>Modules additionnels</title>

<sect2><title>mod_dav</title>

<sect3><title>Qu'est-ce que mod_dav ?</title>

<para>Extrait du site www.webdav.org</para>
<para>mod_dav est un module pour Apache qui le dote des fonctionnalit&eacute;s DAV (RFC 2518). C'est module Open Source diffus&eacute;
sous licence Apache.</para>

<para>Du point de vue des auteurs:</para>
<para>DAV signifie: &quot;Distributed authoring and Versioning&quot; Il permet de g&eacute;rer un site web comme un syst&egrave;me de fichiers.
Il peut donc remplacer les mises &agrave; jours par FTP.</para>

<para>DAV est support&eacute; par les principaux outils de d&eacute;veloppement Web (r&eacute;cents) et est en passe de devenir un standard
de publication Web</para>
</sect3>

<sect3><title>T&eacute;l&eacute;charger des sources</title>
<para>Site d'origine: <ulink url="http://www.webdav.org/mod_dav/">http://www.webdav.org/mod_dav/</ulink></para>
</sect3>

<sect3><title>Compilation et installation</title>
<screen>

cd /usr/local

tar -xvzf mod_dav-1.0.3-1.3.6.tar.gz
cd mod_dav-1.0.3-1.3.6

./configure --with-apxs=/usr/local/apache/bin/apxs

make
make install

</screen>
<para>N.B.: le nom de fichier mod_dav-1.0.3-1.3.6 signifie que mod_dav ne fonctionne qu'avec les versions d'Apache 1.3.6 ou suivantes</para>
</sect3>

</sect2>

<sect2><title>auth_ldap</title>

<sect3><title>Qu'est-ce qu'auth_ldap ?</title>
<para>Extrait du site www.rudedog.org</para>
<para>auth_ldap est un module d'authentification LDAP pour Apache, le plus populaire des serveurs Web. 
Les perfomances de auth_ldap sont excellentes et le module supporte Apache sur Unix ou Windows NT. Ce module
supporte &eacute;galement LDAPS (LDAP sur SSL), et un mode qui permet aux clients Micros&tilde;1 Frontpage de g&eacute;rer 
les permissions Web tandis que les authentifications sont bas&eacute;es sur LDAP. </para>

<para>Du point de vue des auteurs:</para>

<para>Si vous souhaitez mutualiser vos infrastructures d'authentification sur une base login/mot de passe unique,
LDAP est la solution. LDAP est un standard ouvert largement support&eacute;.</para>
<para>LDAP pour s'authentifier:</para>
<para>Au login sous Linux, Solaris (et d'autres?), FTP (certains serveurs), http Basic Authentication Tarantella 
Authentication Role-Management Authentification Samba, d'autres que j'oublie :-) LDAP est bas&eacute; sur des r&ocirc;les, 
ce qui signifie que vous pouvez d&eacute;finir un r&ocirc;le &quot;manager&quot;, l'assigner &agrave; un utilisateur qui aura tous les droits
qui seront attribu&eacute;s au manager</para>
</sect3>

<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site orignie: <ulink url="http://www.rudedog.org/auth_ldap/">http://www.rudedog.org/auth_ldap/</ulink></para>
</sect3>

<sect3><title>Compilation et installation</title>
<screen>

cd /usr/local

tar -xvzf auth_ldap-1.6.0.tar.gz

cd auth_ldap-1.6.0

./configure --with-apxs=/usr/local/apache/bin/apxs &bsol;
--with-sdk=openldap

make
make install

</screen>

</sect3>

</sect2>

<sect2 id="authmysql"><title>mod_auth_mysql</title>
<sect3><title>Qu'est-ce que mod_auth_mysql ?</title>
<para>Il s'agit d'un module d'authentification de type http-Basic. Il permet de g&eacute;rer la base d'utilisateur 
dans une base de donn&eacute;e MySQL</para>
</sect3>
<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="ftp://ftp.kciLink.com/pub/mod_auth_mysql.c.gz">ftp://ftp.kciLink.com/pub/mod_auth_mysql.c.gz</ulink></para>
</sect3>

<sect3><title>Compilation et installation</title>
<screen>

gunzip mod_auth_mysql.c.gz

/usr/local/apache/bin/apxs &bsol;
-c -I/usr/local/mysql/include &bsol;
-L/usr/local/mysql/lib/mysql &bsol;
-lmysqlclient -lm mod_auth_mysql.c

cp mod_auth_mysql.so /usr/local/apache/libexec/

</screen>

<para>
Ajoutez cette ligne dans votre fichier httpd.conf:
</para>

<screen>
LoadModule mysql_auth_module libexec/mod_auth_mysql.so
</screen>

<para>
ainsi que celle-ci dans la partie d'ajout des modules:
</para>
<screen>AddModule mod_auth_mysql.c
</screen>
<para>Prenez garde que les chemins des librairies et des fichiers include de Mysql soient corrects!</para>
<para>NB: Assurez-vous que /usr/local/mysql/lib/mysql est dans /etc/ld.so.conf avant la compilation</para>
<para>Utilisez AuthMySQLCryptedPasswords Off sinon cela ne fonctionnera pas! (analyse du probl&egrave;me en cours)</para>
</sect3>

<sect3><title>Exemple de configuration</title>
<sect4><title>/usr/local/apache/conf/httpd.conf</title>
<screen>

&lt;location /manual/&gt;
  AuthType Basic
  AuthUserfile /dev/null
  AuthName Testing
  AuthGroupFile /dev/null
  AuthMySQLHost localhost
  AuthMySQLCryptedPasswords Off
  AuthMySQLUser root
  AuthMySQLDB users
  AuthMySQLUserTable user_info
  &lt;Limit GET POST&gt;
    require valid-user
  &lt;/limit&gt;
&lt;/location&gt;

</screen>
</sect4>

<sect4><title>Script pour cr&eacute;er la base de donn&eacute;es MySQL</title>

<para>
Tapez simplement:
</para>
<screen>

mysql < authmysql.sql

</screen> 
<para>
Le fichier authmysql.sql contient:</para>
<screen>

  create database http_users;
  connect http_users;

  CREATE TABLE user_info (
  user_name CHAR(30) NOT NULL,
  user_passwd CHAR(20) NOT NULL,
  user_group CHAR(10),
  PRIMARY KEY (user_name);

</screen>

</sect4>
</sect3>
</sect2>

<sect2><title>mod_dynvhost</title>

<sect3><title>Qu'est-ce que mod_dynvhost ?</title>
<para>C'est un petit module qui permet de d&eacute;finir de nouveaux Virtual Host &quot;&agrave; la vol&eacute;e&quot;
simplement en cr&eacute;ant un nouveau r&eacute;pertoire dans le r&eacute;pertoire des virtual host.
Le red&eacute;marrage du serveur Web n'est pas n&eacute;cessaire.</para>
<para>Cela peut &ecirc;tre utile dans le cas d'ISP ou d'h&eacute;bergeurs importants</para>
</sect3>

<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="http://funkcity.com/0101/projects/dynvhost/mod_dynvhost.tar.gz">
http://funkcity.com/0101/projects/dynvhost/mod_dynvhost.tar.gz</ulink>
</para>
</sect3>

<sect3><title>Compilation et installation</title>
<screen>

cd /usr/local

tar -xvzf mod_dynvhost.tar.gz

cd dynvhost/

/usr/local/apache/bin/apxs -i -a -c mod_dynvhost.c

</screen>
<para>N.B.: V&eacute;rifiez dans httpd.conf si mod_dynvhost.so est charg&eacute; au d&eacute;marrage: </para>

<screen>

LoadModule dynvhost_module libexec/mod_dynvhost.so

</screen>
</sect3>

<sect3><title>Exemple de configuration</title>
<sect4><title>/usr/local/apache/conf/httpd.conf</title>

<screen>

&lt;DynamicVirtualHost /usr/local/apache/htdocs/vhosts/&gt; 
  HomeDir / 
&lt;/DynamicVirtualHost&gt;

</screen>

<para>Il ne reste plus qu'&agrave; cr&eacute;er un r&eacute;pertoire pour chaque Virtual host dans /usr/local/apache/htdocs/vhosts/</para>
<para>exemple</para>
<para>/usr/local/apache/htdocs/vhosts/foo.bar.org</para>
<para>Le red&eacute;marrage du serveur Web n'est pas n&eacute;cessaire</para>
</sect4>
</sect3>
</sect2>

<sect2><title>mod_roaming</title>

<sect3><title>Qu'est-ce que mod_roaming ?</title>
<para>Extrait du site www.klomp.org/mod_roaming/</para>
<para>Avec mod_roaming, vous pouvez utiliser votre serveur Apache comme un Netscape Roaming Access server. Cela
permet de stocker la configuration, les pr&eacute;f&eacute;r&eacute;s, les carnets d'adresses, les coockies, etc, de Netscape Communicator 
sur un serveur et ainsi d'utiliser toujours les m&ecirc;me param&egrave;tres, o&ugrave; qu'on se trouve.</para>
<para>Du point de vue des auteurs: </para>
<para>C'est vrai un truc g&eacute;nial! H&eacute;las, cela ne fonctionne pas au travers de serveur proxy.
Cela permet d'utiliser diff&eacute;rentes machines avec les m&ecirc;mes param&egrave;tres.</para>
</sect3>

<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="http://www.klomp.org/mod_roaming/">http://www.klomp.org/mod_roaming/</ulink>
</para>
</sect3>

<sect3><title>Compilation et installation</title>

<screen>

cd /usr/local 

tar -xvzf mod_roaming-1.0.2.tar.gz

cd mod_roaming-1.0.2

/usr/local/apache/bin/apxs -i -a -c mod_roaming.c

</screen>

<para>N.B.: V&eacute;rifier dans httpd.conf si mod_roaming est charg&eacute; au d&eacute;marrage: </para>
<screen>

LoadModule roaming_module libexec/mod_roaming.so

</screen>
<para>Devrait &ecirc;tre install&eacute; automatiquement (pour peu qu'on utilise Netscape sur un r&eacute;seau local)</para>
</sect3>

<sect3><title>Exemple de configuration</title>

<sect4><title>/usr/local/apache/conf/httpd.conf</title>

<screen>

RoamingAlias /roaming /usr/local/apache/roaming
&lt;Directory /usr/local/apache/roaming&gt;
  AuthUserFile /usr/local/apache/conf/roaming-htpasswd
  AuthType Basic
  AuthName &quot;Roaming Access&quot;
  &lt;Limit GET PUT MOVE DELETE&gt;
    require valid-user
  &lt;/Limit&gt;
&lt;/Directory&gt;

</screen>

</sect4>
</sect3>
</sect2>
</sect1>

<sect1 id="compress">
<title>Compression</title>
<para>
Deux modules sont disponibles pour compresser les données: mod_gzip et mod_gunzip. Ils utilisent des approches différentes 
afin de limiter l'utilisation de bande passante.
</para>

<para>
mod_gunzip prend un fichier compressé et le décompresse is le navigateur ne sait pas recevoir des données compressées. 
L'avantage est de limiter la charge CPU car la plupart des navigateurs gèrent bien les données compressées. D'un autre côté, 
la plupart des contenus sont aujourd'hui générés dynamiquement (ex: PHP) et ces contenus ne sont pas compressés.
</para>

<para>
mod_gzip ne travaille pas à partir de fichiers déjà compressés. Toutes les données seront compressées avant d'être envoyées au navigateur. 
L'avantage est de compresser tous les contenus dynamiques, mais en contre-partie, cela génére un forte charge CPU afin de compresser 
toutes les données à la volée. mod_gzip sait gérer des fichiers déjà compressés (par ex: le fichier index.html.gz serait envoyé en l'état).
<para>

<para>
Conclusion: vous devez choisir avec la plus grande précaution le module de compression. Si vous payez la bande passante et 
que la puissante CPU est moins importante, mod_gzip est le bon choix. Si les temps de réponses (délai de traitement des requêtes) 
est important et que la bande passante est peu chère, mod_gunzip est mieux.
<para>

<para>La page web suivante peut vous aider à prendre la bonne décision. C'est un document de Martin Kiff sur mod_gunzip
<ulink url="http://www.innerjoin.org/apache-compression/howto.html">http://www.innerjoin.org/apache-compression/howto.html</ulink>
</para>


<sect2><title>mod_gzip</title>

<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="http://www.ehyperspace.com/htmlonly/products/mod_gzip.html">http://www.ehyperspace.com/htmlonly/products/mod_gzip.html</ulink>
</para>
</sect3>

<sect3><title>Compilation et installation</title>

<screen>
/usr/local/apache/bin/apxs -i -a -c -lz mod_gzip.c
</screen>
</sect3>

<sect3>
<title>Exemple de configuration</title>
<para>Mettre ce qui suit dans <filename>/usr/local/apache/conf/httpd.conf</filename>:</para>
<screen>
mod_gzip_on                 Yes
mod_gzip_can_negotiate      Yes
mod_gzip_dechunk            Yes
mod_gzip_minimum_file_size  600
mod_gzip_maximum_file_size  0
mod_gzip_maximum_inmem_size 100000
mod_gzip_keep_workfiles     No
mod_gzip_temp_dir           /usr/local/apache/gzip
mod_gzip_item_include       file \.html$
mod_gzip_item_include       file \.txt$
mod_gzip_item_include       file \.jsp$
mod_gzip_item_include       file \.php$
mod_gzip_item_include       file \.pl$
mod_gzip_item_include       mime ^text/.*
mod_gzip_item_include       mime ^application/x-httpd-php
mod_gzip_item_include       mime ^httpd/unix-directory$
mod_gzip_item_include       handler ^perl-script$
mod_gzip_item_include       handler ^server-status$
mod_gzip_item_include       handler ^server-info$
mod_gzip_item_exclude       file \.css$
mod_gzip_item_exclude       file \.js$
mod_gzip_item_exclude       mime ^image/.*
</screen>

</sect3>


</sect2>

<sect2><title>mod_gunzip</title>

<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="http://www.oldach.net/mod_gunzip.tar.gz">http://www.oldach.net/mod_gunzip.tar.gz</ulink>
</para>
</sect3>

<sect3><title>Compilation et installation</title>

<screen>
tar -xvzf mod_gunzip.tar.gz
cd mod_gunzip-2

/usr/local/apache/bin/apxs -i -a -c -lz mod_gunzip.c
</screen>
</sect3>

<sect3>
<title>Exemple de configuration</title>
<para>Mettre ce qui suit dans <filename>/usr/local/apache/conf/httpd.conf</filename>:</para>

<screen>
AddType text/html .htmz
AddHandler send-gunzipped .htmz
</screen>

<para>
Maintenant vous pouvez utiliser gzip sur vos fichiers html et les renommer, c'est à dire :</para>
<screen>
gzip index.html
mv index.html.gz index.htmz
</screen>

<para>
Bien entendu, vous devrez modifier tous vos liens html vers des htmz, c'est à dire &lt;a href="page.htmz"&gt;Une page&lt;/a&gt;
</para>

</sect3>

</sect2>

</sect1>

<sect1 id="php">
<title>mod_php et ses pr&eacute;requis</title>


<sect2><title>Qu'est-ce que mod_php ?</title>
<para>Extrait du site www.php.net</para>
<para>PHP est un language de script c&ocirc;t&eacute; serveur, orient&eacute; Web et multi plate-forme. </para>
<para>Au d&eacute;part c'&eacute;tais simplement un moteur de livre d'or, puis il s'est d&eacute;velopp&eacute; encore et encore jusqu'&agrave; 
la version 3 qui &eacute;tait vraiment un langage de d&eacute;veloppement Web puissant</para>


<para>Du point de vue des auteurs:</para>

<para>Depuis la version 4, il est assez robuste pour des applications web professionnelles. Il est tr&egrave;s puissant et 
supporte nativement toutes les principales bases de donn&eacute;es, et les autres via ODBC. Il est un poil plus rapide que ASP sur syst&egrave;mes M&dollar;. </para>

<para>Il existe d'autres extensions comme apc qui acc&eacute;l&egrave;re les traitements de 50 &agrave; 400&percnt; 
(en fonction du code &eacute;crit)</para>
</sect2>

<sect2><title>Pr&eacute;requis</title>
<para>En fonction de vos besoins, il faudra installer tout d'abord d'autres logiciels. Si vous suivez ce document, 
l'un de ces logiciels est MySQL car il est n&eacute;cessaire &agrave; mod_auth_mysql.</para>

<sect3><title>IMAP client</title>

<sect4><title>Qu'est-ce qu'IMAP ?</title>
<para>IMAP signifie "Internet Mail Application Protocol". Il s'agit d'une alternative au protocole POP. 
Il permet de garder tous les mails dans des r&eacute;pertoires sur le serveur, &eacute;vitant ainsi de perdre les 
mails en cas de crash de disque dur sur les postes clients</para>
</sect4>
</sect3>

<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine</para>

<para>Site d'origine: <ulink url="http://www.washington.edu/imap/">http://www.washington.edu/imap/</ulink>
</para>
</sect3>

<sect3><title>Compilation et installation</title>

<screen>

cd /usr/local

tar -xvfz imap.tar.Z

cd imap

make slx SSLTYPE=unix



</screen>

<para>N.B.: </para>
<para>imap.tar.Z est un lien vers la derni&egrave;re version (aujourd'hui vers imap-2001a.tar.Z</para>
<para>Si vous n'avez pas besoin du support de SSL, enlevez "SSLTYPE=unix" dans la commande make</para>
</sect3>

<sect3><title>PostgreSQL</title>
<sect4><title>Qu'est-ce que PostgreSQL ?</title>
<para>PostgreSQL est une base de donn&eacute;es puissante et rapide</para>
<para>Comme MySQL, c'est parfait pour les applications Web, mais de mon point de vue, n'est pas aussi 
ais&eacute;e &agrave; g&eacute;rer que MySQL. Si votre application Web &eacute;crit beaucoup de donn&eacute;es ou que vous avez besoin de 
fonctionnalit&eacute;s robustes de transaction, PostgreSQL est pour vous</para>
</sect4>
<sect4><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="http://www.postgresql.org">http://www.postgresql.org</ulink>  (Select a mirror close to you)</para>
</sect4>
<sect4><title>Compilation et installation</title>

<screen>

cd /usr/local

tar -xvzf postgresql-7.2.1.tar.gz

cd postgresql-7.2.1

./configure &bsol;
--with-perl &bsol;
--enable-odbc &bsol;
--with-unixodbc  &bsol;
--with-pam &bsol;
--with-openssl &bsol;


make
make install

echo /usr/local/pgsql/lib &gt;&gt; /etc/ld.so.conf

ldconfig

</screen>
</sect4>
</sect3>

<sect3><title>pdflib</title>

<sect4><title>Qu'est-ce que pdflib ?</title>
<para>Extrait du site www.pdflib.com</para>
<para>PDFlib est librairie pour g&eacute;n&eacute;rer &agrave; la vol&eacute;e des PDF sur le serveur, convertir des textes ou des 
graphiques, ou impl&eacute;menter dans vos propres produits des sorties PDF.</para>
<para>Il s'agit d'un produit commercial! Lisez attentivement la licence pour savoir si vous avez besoin d'une 
licence commerciale ou pas!</para>
</sect4>

<sect4><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="http://www.pdflib.com/pdflib/download/pdflib-4.0.2.tar.gz">
http://www.pdflib.com/pdflib/download/pdflib-4.0.2.tar.gz</ulink></para>
</sect4>

<sect4><title>Compilation et installation</title>

<screen>

cd /usr/local/
tar -xvzf pdflib-4.0.2.tar.gz

cd pdflib-4.0.2

./configure --enable-shared-pdflib --enable-cxx

make
make install

ldconfig

</screen>
</sect4>
</sect3>

<sect3><title>gettext</title>

<sect4><title>Qu'est-ce que gettext ?</title>
<para>gettext est une librairie pour i18n (Internationalisation, "I", 18 caractères et "n") des logiciels et est n&eacute;cessaire pour php</para>
</sect4>

<sect4><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="ftp://ftp.gnu.org/gnu/gettext">ftp://ftp.gnu.org/gnu/gettext</ulink>
 (choisissez un mirroir proche de chez vous)</para>
</sect4>

<sect4><title>Compilation et installation</title>

<screen>

cd /usr/local

tar -xvzf gettext-0.11.2.tar.gz

cd gettext-0.11.2

./configure

make
make check
make install

ldconfig

</screen>
</sect4>
</sect3>

<sect3><title>zlib</title>

<sect4><title>Qu'est-ce que zlib ?</title>
<para>zlib est une librairie de compression de donn&eacute;e portable.</para>
</sect4>

<sect4><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="//ftp.info-zip.org/pub/infozip/zlib/zlib.tar.gz">ftp://ftp.info-zip.org/pub/infozip/zlib/zlib.tar.gz</ulink>
 (choisissez un mirroir pr&egrave;s de chez vous)</para>
</sect4>

<sect4><title>Compilation et installation</title>

<screen>

cd /usr/local

tar -xvzf zlib-1.1.4.tar.gz

cd zlib-1.1.4/

./configure

make
make test
make install

ldconfig

</screen>
</sect4>
</sect3>

</sect2>

<sect2 id="build-php">
<title>Compilation et installation</title>

<screen>

cd /usr/local

tar -xvzf php-4.2.1.tar.gz

cd php-4.2.1


./configure &bsol;
--with-apxs=/usr/local/apache/bin/apxs &bsol;
--with-mysql=/usr/local/mysql &bsol;
--with-pgsql=/usr/local/pgsql &bsol;
--enable-track-vars &bsol;
--with-openssl=/usr/local/ssl &bsol;
--with-imap=/usr/local/imap-2001a &bsol;
--with-gd --with-ldap &bsol;
--enable-ftp &bsol;
--enable-sysvsem &bsol;
--enable-sysvshm &bsol;
--enable-sockets &bsol;
--with-pdflib=/usr/local &bsol;
--with-gettext &bsol;
--with-mm=/usr/local/mm-1.1.3 &bsol;
--with-jpeg-dir=/usr/lib &bsol;
--with-zlib-dir=/usr/local &bsol;

make
make install

</screen>

<para>Apr&egrave;s l'installation, votre httpd.conf est modifi&eacute; par axps. Il devrait maintenant avoir l'air de &ccedil;a:</para>
<screen>

&lt;IfDefine SSL&gt;
LoadModule ssl_module         libexec/libssl.so
LoadModule php4_module        libexec/libphp4.so
&lt;/IfDefine&gt;

</screen>

<para>Si vous avez install&eacute; Apache avec mod_ssl, alors le module PHP sera charg&eacute; seulement si vous lancez 
Apache avec SSL (apachectl startssl). Si vous comptez lancer Apache sans SSL (et si vous l'avez compil&eacute; comme c'est expliqu&eacute; dans ce document), 
vous devrez changer ceci :
</para>

<screen>

&lt;IfDefine SSL&gt;
LoadModule ssl_module         libexec/libssl.so
&lt;/IfDefine&gt;
LoadModule php4_module        libexec/libphp4.so

</screen>



<para>Copiez l'exemple php.ini dans /usr/local/lib/php.ini</para>

<screen>

cp /usr/local/php-4.1.2/php.ini-dist /usr/local/lib/php.ini

</screen>

<para>D&eacute;commentez (supprimer les &num; en d&eacute;but de ligne) les lignes suivantes dans le fichier /usr/local/apache/conf/httpd.conf</para>
<para>Le fichier httpd.conf de Apache 1.3.26 n'a pas ces lignes par d&eacute;faut. 
Vous devez les ajouter au lieu de les d&eacute;commenter</para>

<screen>

AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .php3
AddType application/x-httpd-php-source .phps

</screen>

<para>Relancer Apache avec la commande suivante: </para>


<screen>

/usr/local/apache/bin/apachectl restart

</screen>
</sect2>
</sect1>


<sect1 id="phpext"><title>Extensions PHP</title>
<para>Vous pouvez ajouter des extensions pour PHP dans php.ini</para>

<sect2><title>APC (Alternative PHP-cache)</title>
<sect3><title>Qu'est-ce qu'APC ?</title>
<para>Extrait du site www.apc.communityconnect.com/</para>
<para>APC est Alternative PHP Cache. Il a &eacute;t&eacute; con&ccedil;u afin de fournir une solution libre, ouverte et robuste pour cacher 
la compilation des scripts PHP. APC est con&ccedil;u pour optimiser les performance de PHP sur des sites charg&eacute;s en cachant 
les scripts compil&eacute;s, &eacute;conomisant la phase d'interpr&eacute;tation et de compilation. Il existe des logiciels commerciaux qui font 
cela, mais ils ne sont ni libres, ni gratuits. Nous voulions tirer le niveau vers le haut en fournisant une base souple et universelle.
Nous souhaitions &eacute;galement que le cache fournissent des informations sur son 
activit&eacute; et celle du PHP. Aussi nous avons travaill&eacute; &agrave; la mise au point d'outils de diagnostic et d'administration. 
Ainsi APC est n&eacute;. Comme nous avons d&eacute;velopp&eacute; un produit qui peut facilement &eacute;voluer avec la nouvelle version de PHP, 
nous l'avons impl&eacute;ment&eacute; comme une extension Zend, ce qui permet soit de le compiler dans PHP, soit de l'instaler &agrave; posteriori 
comme suppl&eacute;ment. Comme avec PHP, il est compl&egrave;tement libre pour des utilisations, commerciales ou non, sous le m&ecirc;me type 
de license que PHP. APC a &eacute;t&eacute; test&eacute; avec PHP 4.0.3, 4.0.3p11 et 4.0.4. Il se compile actuellement sous Linux et FreeBSD. 
Toute contribution pour le porter sur d'autres syst&egrave;mes ou d'autres versions de PHP est bienvenue.</para>

<para>Du point de vue des auteurs:</para>
<para>L'auteur a fait des tests de performance avec APC et a &eacute;t&eacute; r&eacute;ellement surpris. Une page PHP avec des requ&ecirc;tes SQL 
dans une boucle (10 requ&ecirc;tes au total) a &eacute;t&eacute; acc&eacute;l&eacute;r&eacute;e de plus de 50&percnt; </para>
<para>A charge: si vous avez des utilisateurs sur ce syst&egrave;me qui d&eacute;veloppent en PHP, ils pourraient &ecirc;tre perturb&eacute;s par APC, 
parce que les modifications dans les scripts ne sont pris en compte qu'au vidage du cache ou au red&eacute;marrage d'Apache. Une autre 
solution est de faire v&eacute;rifier par APC l'existance d'une nouvelle version de script avant chaque &eacute;x&eacute;cution mais cela fait 
perdre du temps.</para>

</sect3>
<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="http://apc.communityconnect.com/sources/apc-cvs.tar.gz">http://apc.communityconnect.com/sources/apc-cvs.tar.gz</ulink></para>
</sect3>

<sect3><title>Compilation et installation</title>

<screen>

cd /usr/local

tar -xvzf apc-cvs.tar.gz

cd apc

./configure --enable-apc --with-php-config=/usr/local/bin/php-config

make
make install

cp modules/php_apc.so /usr/local/lib/php/extensions

echo 'zend_extension=&quot;/usr/local/lib/php/extensions/php_apc.so&quot;' \
&gt;&gt; /usr/local/lib/php.ini
echo &ldquo;apc.mode = shm&rdquo; &gt;&gt; \
apc.mode = shm

</screen>

<para>
Red&eacute;marrer votre serveur Apache. Pour l'essayer, cr&eacute;er le script PHP suivant: </para>

<screen>

&lt;?php
apcinfo();
?&gt;

</screen>

</sect3>
</sect2>


<sect2><title>Zend-Optimizer (Ne _PAS_ le compiler avec APC-Cache!)</title>
<sect3><title>Qu'est-ce que Zend-optimizer ?</title>
<para>Extrait du site www.zend.com</para>
<para>Zend Optimizer travaille sur le code interm&eacute;diaire g&eacute;n&eacute;r&eacute; par le compilateur standard Zend du moteur Zend, et l'optimise pour 
une &eacute;x&eacute;cution plus rapide. </para>
<para>Du point de vue des auteurs: il y a une perte de performance d'environ 5&percnt; ? Alors pourquoi utiliser ce produit 
ferm&eacute; plut&ocirc;t qu'un produit libre ?</para>
<para>Vous devez tester par vous-m&ecirc;me, et voir si vous avez des am&eacute;lioration avec votre propre code. Assurez vous de ne pas 
utiliser Zend Optimizer avec APC, ou votre configuration ne fonctionnera pas</para>
</sect3>

<sect3><title>T&eacute;l&eacute;charger les binaires</title>
<para>Site d'origine: <ulink url="https://www.zend.com/store/free_download.php?pid=13">https://www.zend.com/store/free_download.php?pid=13</ulink></para>

<para>Vous devez vous enregistrer sur le site zend.com pour acc&eacute;der &agrave; la page des downloads</para>
</sect3>


<sect3><title>Installation</title>
<para>Il n'y a rien &agrave; compiler car le source de ce produit n'est pas ouvert et il est seulement diffus&eacute; sous forme 
de binaires pour les diff&eacute;rentes plate-formes. Le nom du fichier est fonction de la plate-forme. Par exemple pour 
Linux sur IA32</para>

<screen>

cd /usr/local

tar -xvzf ZendOptimizer-1.3.1-Linux_glibc21-i386.tar.gz

cd ZendOptimizer-1.3.1-Linux_glibc21-i386

./install.sh
</screen>

<para>Le script d'installation est expliqué, si Apache et PHP ont été compilé en suivant cette procédure, 
vous n'aurez qu'à appuyer sur Entrée pour toutes les questions sur les chemins d'accès.</para>

</sect3>
</sect2>

</sect1>

<sect1 id="ssjava"><title>Java c&ocirc;t&eacute; serveur (Server Side Java)</title>
<sect2><title>mod_jserv</title>
<sect3><title>Qu'est-ce que mod_jserv ?</title>
<para>Extrait du site java.apache.org</para>
<para>Apache JServ un moteur de servlet Java 100&percnt; conforme aux sp&eacute;cifications de theJavaSoft Java Servlet APIs 2.0. 
Comme nous sommes convaincus de l'importance d'une compl&egrave;te portabilit&eacute; entre les diff&eacute;rentes plates-formes de servlet, 
et de la portabilit&eacute; du code Java, nous avons travaill&eacute; avec Javasoft et d'autres JVM afin de fournir une interpr&eacute;tation 
ou des sp&eacute;cifications Java correctes, que ce soit pour les servlets ou le langage Java lui-m&ecirc;me. mod_jserv est tr&egrave;s simple 
&agrave; administrer (habituellement Java c'est l'enfer, jserv c'est un peu mieux :-)</para>

<para>H&eacute;las mod_jserv n'est plus activement d&eacute;velopp&eacute;, seuls les bugs trouv&eacute;s sont corrig&eacute;s. Tomcat est le successeur de
mod_jserv. D&egrave;s que l'auteur aura suffisament de temps et d'exp&eacute;rience de Tomcat, il am&eacute;liorera ce HOWTO sur ce point</para>
<para>JDSK2.0 est d&eacute;pass&eacute; maintenant. Seul mod_jserv en a besoin.</para>

</sect3>
<sect3><title>Pr&eacute;requis</title>
<sect4><title>JSDK 2.0 (requis par mod_jserv)</title>
<sect5><title>Qu'est-ce que JSDK ?</title>
<para>C'est l'API de Sun Microsystems pour le d&eacute;veloppement de Servlets</para>
</sect5>
<sect5><title>T&eacute;l&eacute;chargement</title>
<para>Site d'origine: <ulink url="http://java.sun.com/products/servlet/archive.html">
http://java.sun.com/products/servlet/archive.html</ulink></para>
</sect5>
<sect5><title>Compilation et installation</title>
<para>Depuis que les sources de JSDK sont ferm&eacute;s, il n'y a plus rien &agrave; compiler.</para>
<para>N.B.: Le nom de fichier &ldquo;jsdk20-solaris2-sparc.tar.Z&rdquo; pourrait laisser croire que c'est un binaire pour plate-forme 
sparc -&gt;. Il n'en est rien et il fonctionnera sur toutes les plates-formes.</para>

<screen>

cd /usr/local/ 

uncompress jsdk20-solaris2-sparc.tar.Z
tar -xvf jsdk20-solaris2-sparc.tar

</screen>
</sect5>
</sect4>
</sect3
<sect3><title>T&eacute;l&eacute;charger les sources</title>
<para>Site d'origine: <ulink url="http://java.apache.org/jserv/dist/">http://java.apache.org/jserv/dist/</ulink></para>
</sect3>
<sect3><title>Compilation et installation</title>

<screen>

cd /usr/local

tar -xvzf ApacheJServ-1.1.2.tar.gz
cd ApacheJServ-1.1.2

./configure &bsol;
--prefix=/usr/local/jserv &bsol;
--with-apxs=/usr/local/apache/bin/apxs &bsol;
--with-JSDK=/usr/local/JSDK2.0 &bsol;
--enable-EAPI &bsol;

make
make install

</screen>
<para>Il est important d'utiliser l'option --enable-EAPI si Apache est compil&eacute; avec mod_ssl!</para>
</sect3>
</sect2>
<sect2><title>jakarta-tomcat</title>
<sect3><title>Qu'est-ce que Tomcat ?</title>
<para>Extrait du site jakarta.apache.org</para>
<para>Tomcat est le containeur de servlet qui est utilis&eacute; dans Reference Implementation for the Java Servlet and 
JavaServer Pages technologies. Les sp&eacute;cifications des Servlet Java et des Pages JavaServer sont d&eacute;velopp&eacute;e par Sun 
dans le cadre de la communaut&eacute; Java.</para> 
<para>Du point de vue des auteurs: Tomcat est le successeur de jserv qui n'est plus d&eacute;velopp&eacute;. Tomcat supporte les 
derni&egrave;res d&eacute;finitions de l'API jsp et des servlet de SUN. Malheureusement, il est tr&egrave;s difficile d'en compiler les 
sources &agrave; cause de "ant", son syst&egrave;me de compilation. Il y a &eacute;galement une longue liste de d&eacute;pendances. Voir 
<ulink url="http://jakarta.apache.org/tomcat/tomcat-4.0-doc/BUILDING.txt">http://jakarta.apache.org/tomcat/tomcat-4.0-doc/BUILDING.txt</ulink> 
pour plus de d&eacute;tails - Bonne chance, et envoyez &agrave; l'auteur vos exp&eacute;riences.</para>

<para>
Vous pouvez &eacute;galement regarder le HOWTO qui donne quelques indications pour l'installation &agrave; partir des binaires.</para>

<para>L'auteur est &agrave; la recherche de volontaires pour essayer de compiler Tomcat et cr&eacute;er une petite proc&eacute;dure 
d'installation.</para>

</sect3>
<sect3><title>Pr&eacute;requis</title>
<sect4><title>Java2</title>
<sect5><title>Qu'est-ce que Java2 ?</title>
<para>Extrait du site java.sun.com</para>
<para> C'est trop pour ce HOWTO, allez voir <ulink url="http://java.sun.com/j2se/1.3/docs/relnotes/features.html">http://java.sun.com/j2se/1.3/docs/relnotes/features.html</ulink></para>
</sect5>
<sect4><title>T&eacute;l&eacute;chargement des binaires</title>

<para>Allez &agrave; <ulink url="http://java.sun.com/j2se/1.3/">http://java.sun.com/j2se/1.3/</ulink> , Choisissez votre 
plate-forme et suivez les indications du site.</para>
</sect4>

<sect4><title>Installation des binaires</title>
<para>
Vous devez maintenant ex&eacute;cuter le binaire:

<screen>

chown +x j2sdk-1_3_1_02-linux-i386.bin

./2sdk-1_3_1_02-linux-i386.bin

</screen>

<para>
N.B. : Une version de java plus récente est disponible, vous pouvez la télécharger la 1.4.0 en prenant garde aux problèmes de stabilité
</para>

<para>Apr&egrave;s avoir accept&eacute; la licence, vous pourrez d&eacute;compresser les fichiers pour les mettre dans "/usr/lib"</para>

</sect4>
</sect3>


<sect3><title>T&eacute;l&eacute;chargement les binaires</title>
<para>Site d'origine: 
<ulink url="http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/bin/jakarta-tomcat-4.0.3.tar.gz">
http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/bin/jakarta-tomcat-4.0.3.tar.gz</ulink></para>

<sect3><title>Installation des binaires</title>

<screen>

cd /usr/local

tar -xvzf jakarta-tomcat-4.0.3.tar.gz

cd jakarta-tomcat-4.0.3

cd bin

rm *.bat

echo export JAVA_HOME=/usr/lib/java/ >> /etc/profile
. /etc/profile

</screen>

<para>Maintenant vous devriez pouvoir lancer tomcat:

<screen>

/usr/local/apache/jakarta-tomcat-4.0.3/bin/startup.sh

</screen>

<para>Vous devriez pouvoir vous connecter &agrave;: <ulink url="http://localhost:8080/index.html">http://localhost:8080/index.html</ulink></para>

<para>Pour les &eacute;tapes suivantes (installation de vos servlets et jsp), d&eacute;brouillez vous...</para>

<para>N.B.: L'auteur n'est PAS un programmeur JAVA. Il pourra ne pourra vous apporter qu'une petite aide sur JAVA!
L'auteur est un administrateur syst&egrave;me exp&eacute;riment&eacute; et vous conseille : de vous assurer que la variable CLASSPATH est 
correctement d&eacute;finie! C'est l'erreur la plus fr&eacute;quente! Amusez-vous bien, et surtout n'oubliez pas de renvoyer &agrave; l'auteur 
vos retours d'exp&eacute;rience (ndr: en anglais).</para>


</sect3>

</sect2>

</sect1>

 <sect1 id="moreinfo">
  <title>Plus d'information</title>

   <indexterm>
    <primary>(your index root)!information resources</primary>
   </indexterm>

  <para>
	Vous trouverez ici des informations suppl&eacute;mentaires accessibles
	via Internet.
  </para>


  <sect2 id="newsgroups">
   <title>News groups</title>

    <indexterm>
     <primary>disk!information resources!news groups</primary>
    </indexterm>

   <para>Les newsgroups les plus int&eacute;ressants sont les suivants :

    <itemizedlist>

     <listitem>
      <para>
       <ulink url="news:alt.apache.configuration">alt.apache.configuration</ulink>
      </para>
     </listitem>


     <listitem>
      <para>
       <ulink url="news:comp.infosystems.www.servers.unix">comp.infosystems.www.servers.unix</ulink>
      </para>
     </listitem>

     <listitem>
      <para>
       <ulink url="news:alt.comp.lang.php">alt.comp.lang.php</ulink>
      </para>
     </listitem>

     <listitem>
      <para>
       <ulink url="news:alt.php">alt.php</ulink>
      </para>
     </listitem>

     <listitem>
      <para>
       <ulink url="news:comp.databases">comp.databases</ulink>
      </para>
     </listitem>

    </itemizedlist>
   </para>

   <para>Vous pouvez &eacute;galement regarder vos newsgroups nationaux ex fr.comp.os.linux</para>

   <para>
    La plupart des newsgroups ont leur propre FAQ (Foire Aux Questions). Les autres 
    questions peuvent toujours &ecirc;tre pos&eacute;e dans les newsgroups. Si vous avez 
    des probl&egrave;mes pour consulter les newsgroups, allez voir 
    <ulink url="ftp://rtfm.mit.edu/">Archive FTP de FAQ</ulink>.
    Les version Web sont consultable sur:
    <ulink url="http://www.cis.ohio-state.edu/hypertext/faq/usenet/FAQ-List.html">
    Archive Web de FAQ</ulink>.
   </para>
  </sect2>

  <sect2 id="maillists">
   <title>Mailing Lists</title>

    <indexterm>
     <primary>disk!information resources!mailing lists</primary>
    </indexterm>

   <sect3>
   <title><email>users@httpd.apache.org</email></title>
   <para>
   Envoyez un email vide &agrave; <email>users-subscribe@httpd.apache.org</email> 
   <para>Avant d'&eacute;crire sur la liste, consultez les archives: <ulink url="http://marc.theaimsgroup.com/?l=apache-httpd-users">
   http://marc.theaimsgroup.com/?l=apache-httpd-users</ulink></para>

  </sect3>

  <sect3>

   <title><email>modperl@apache.org</email></title>
   <para>Envoyez un email &agrave; <email>modperl@apache.org</email> avec le contenu (et pas le sujet):
   <screen>
   subscribe modperl</screen> </para>
   <para>Avant d'&eacute;crire dans la liste, v&eacute;rifiez les archives:
   <ulink url="http://outside.organic.com/mail-archives/modperl/">
   http://outside.organic.com/mail-archives/modperl/</ulink></para>

  </sect3>


  <sect3>
   	<title><email>openssl-users@openssl.org</email></title>
	<para>Envoyez un email &agrave; <email>majordomo@openssl.org</email> avec le contenu (et pas le sujet):
	<screen>
   subscribe openssl-users</screen> </para>
	<para>Avant d'&eacute;crire dans la liste, v&eacute;rifiez les archives:
	<ulink url="http://www.mail-archive.com/openssl-users@openssl.org/">
	http://www.mail-archive.com/openssl-users@openssl.org/</ulink></para>
  </sect3>


 <sect3>
        <title><email>modssl-users@modssl.org</email></title>
        <para>Envoyez un email &agrave; <email>majordomo@modssl.org</email> avec le contenu (et pas le sujet):
        <screen>
   subscribe modssl-users</screen> </para>
        <para>Avant d'&eacute;crire dans la liste, v&eacute;rifiez les archives:
        <ulink url="http://www.mail-archive.com/modssl-users@modssl.org/">
        http://www.mail-archive.com/modssl-users@modssl.org/</ulink></para>
  </sect3>

<sect3>
        <title><email>mysql@lists.mysql.com</email></title>
        <para>Envoyez un email vide &agrave; <email>mysql-subscribe@lists.mysql.com</email>
        <para>Avant d'&eacute;crire dans la liste, v&eacute;rifiez les archives:
        <ulink url="http://lists.mysql.com/cgi-ez/ezmlm-cgi/">
        http://lists.mysql.com/cgi-ez/ezmlm-cgi/</ulink></para>
  </sect3>

<sect3>
        <title><email>pgsql-general@postgres.org</email></title>
        <para>Remplissez le formulaire d'inscription &agrave; <ulink url="http://developer.postgresql.org/mailsub.php">
	http://developer.postgresql.org/mailsub.php</ulink>
        <para>Avant d'&eacute;crire dans la liste, v&eacute;rifiez les archives:
        <ulink url="http://archives.postgresql.org/pgsql-general/">
        http://archives.postgresql.org/pgsql-general/</ulink></para>
  </sect3>

<sect3>
        <title><email>pgsql-general@postgres.org</email></title>
        <para>Remplissez le formulaire d'inscription &agrave; <ulink url="http://www.php.net/mailing-lists.php">
        http://www.php.net/mailing-lists.php</ulink>
	<para>
	Il y a plusieurs mailing-lists &agrave; consulter, certaines sont disponibles sur le serveur de newsgroups de php.net
	</para>
        <para>
	Avant d'&eacute;crire dans la liste, v&eacute;rifiez les archives qui vous sont pr&eacute;sent&eacute;es sur la page d'inscription.
        <para>
  </sect3>

<sect3>
        <title><email>apc-cache@lists.communityconnect.com</email></title>
	<para>Envoyez un email &agrave; <email>apc-cache-request@lists.communityconnect.com</email> dont le contenu (et pas le sujet):
        <screen>
   subscribe</screen> </para>
  </sect3>

  </sect2>

 <sect2 id="howto">
   <title>HOWTO</title>

    <indexterm>
     <primary>disk!information resources!HOWTOs</primary>
    </indexterm>

   <para>
    Ces documents sont des points de d&eacute;part pour comprendre et 
    r&eacute;soudre les probl&egrave;mes. 
   </para>

<para>
    <Literal remap="tt">
	<ulink url="http://www.linuxdoc.org/HOWTO/Apache-Overview-HOWTO.html">Apache-Overview-HOWTO</ulink>
    </Literal>, 
    <Literal remap="tt">
    	<ulink url="http://www.linuxdoc.org/HOWTO/Apache-WebDAV-LDAP-HOWTO/index.html">Apache-WebDAV-LDAP-HOWTO</ulink>
    </Literal>,
    <Literal remap="tt">
        <ulink url="http://www.linuxdoc.org/HOWTO/LDAP-HOWTO.html">LDAP-HOWTO</ulink>
    </Literal>,

    <Literal remap="tt">
        <ulink url="http://www.linuxdoc.org/HOWTO/LDAP-Implementation-HOWTO/index.html">LDAP-Implementation-HOWTO</ulink>
    </Literal>and the

    <Literal remap="tt">
        <ulink url="http://www.linuxdoc.org/HOWTO/PHP-HOWTO.html">PHP-HOWTO</ulink></Literal>
</para>

   <para>
  Le principal site pour tout cela est 
    <ulink url="http://www.linuxdoc.org/">LDP archive</ulink>
   </para>

  </sect2>

  <sect2 id="local-res">
   <title>Ressources locales</title>

    <indexterm>
     <primary>disk!information resources!local</primary>
    </indexterm>

   <para>
        Habituellement, des documents sont install&eacute;s sur le syst&egrave;me. G&eacute;n&eacute;ralement, ces documents se
        trouvent dans <filename>/usr/share/doc/packages</filename> et <filename> /usr/local/share/doc </filename>
   </para>

   <para>
        Les logiciels mentionn&eacute;s ici sont fournis avec beaucoup de documentation dans r&eacute;pertoires des sources. Apache 
        installe sa documentation dans le r&eacute;pertoire DocumentRoot par d&eacute;faut.
   <para>



</sect2>

  <sect2 id="web">
   <title>Sites Web</title>

    <indexterm>
     <primary>disk!information resources!WWW</primary>
    </indexterm>
    <indexterm>
     <primary>disk!information resources!web pages</primary>
    </indexterm>

   <para>
    Un grand nombre de site web d'information existent. Ceux-ci bougent 
    beaucoup (souvent des pages perso) et les liens peuvent vite disparaitre.
   </para>

   <para>
    Un bon point de d&eacute;part est bien sur le site 
    <ulink url="http://www.linuxdoc.org/">Linux Documentation
    Project</ulink>, un portail pour la documentations, des 
    projets et autres.
   </para>

   <para>
        Pour obtenir plus d'informations &agrave; propos des logiciels cit&eacute;s, visitez les sites mentionn&eacute;s.
   </para>

      <itemizedlist>
  	<listitem>
	<para>
	<ulink url="http://httpd.apache.org">http://httpd.apache.org</ulink>
	<para>
	</listitem>
   </itemizedlist>

   <itemizedlist>
        <listitem>
        <para>
        <ulink url="http://www.openssl.org">http://www.openssl.org</ulink>
        <para>
        </listitem>
   </itemizedlist>

   <itemizedlist>
        <listitem>
        <para>
        <ulink url="http://www.modssl.org">http://www.modssl.org</ulink>
        <para>
        </listitem>
   </itemizedlist>

   <itemizedlist>
        <listitem>
        <para>
        <ulink url="http://perl.apache.org/">http://perl.apache.org/</ulink>
        <para>
        </listitem>
   </itemizedlist>

   <itemizedlist>
        <listitem>
        <para>
        <ulink url="http://www.webdav.org">http://www.webdav.org</ulink>
        <para>
        </listitem>
   </itemizedlist>

   <itemizedlist>
        <listitem>
        <para>
        <ulink url="http://www.mysql.com">http://www.mysql.com</ulink>
        <para>
        </listitem>
   </itemizedlist>

   <itemizedlist>
        <listitem>
        <para>
        <ulink url="http://www.postgresql.org">http://www.postgresql.org</ulink>
        <para>
        </listitem>
   </itemizedlist>

   <itemizedlist>
        <listitem>
        <para>
        <ulink url="http://www.pdflib.com">http://www.pdflib.com</ulink>
        <para>
        </listitem>
   </itemizedlist>

   <itemizedlist>
        <listitem>
        <para>
        <ulink url="http://www.php.net">http://www.php.net</ulink>
        <para>
        </listitem>
   </itemizedlist>

   <itemizedlist>
        <listitem>
        <para>
        <ulink url="http://www.phpbuilder.com">http://www.phpbuilder.com</ulink>
        <para>
        </listitem>
   </itemizedlist>

   <para>
    Fa&icirc;tes-moi connaitre vos autres sources d'information.
   </para>
  </sect2>

 </sect1>

 <sect1 id="faq">
  <title>Questions et r&eacute;ponses</title>

   <indexterm>
    <primary>(your index root)!FAQ</primary>
   </indexterm>
   <indexterm>
    <primary>(your index root)!frequently asked questions</primary>
   </indexterm>

  <para>
        Ci-apr&egrave;s vous trouverez des questions que l'on m'a pos&eacute;es. Contactez-moi si vous n'y trouvez pas les 
        r&eacute;ponses &agrave; vos questions.
</para>

  <para>
   <itemizedlist>
    <listitem>
	<para>
	Q: Existe-t-il un HOWTO pour apache 2.0?
	</para>

	<para>
	R: Pas encore car le support de l'API Apache 2.0 dans PHP 4.2.1 est expérimental et les performance de PHP sur 
	Apache 2.0 sont mauvaises. L'équipe de développement de Apache travaille beaucoup sur l'amélioration des performances 
	et dès que PHP fonctionnera mieux, j'écrirai un HOWTO. N'hésitez pas à m'envoyer des email (en anglais) à  
	<email>luc at delouw dot ch</email> pour me transmettre vos idées, suggestions ou souhaits pour Apache 2.0.
	</para>

<listitem>
     <para>
      Q: Pourquoi n'avez vous pas expliqu&eacute; comment compiler et configurer mod_xyz ?
     </para>

         <para>
     R: Parce que personne ne l'a demand&eacute; et que je ne connais pas mod_xyz, ou bien que je ne l'ai pas trouv&eacute; tr&egrave;s interessant.
     Envoyez-moi vos suggestions pour compl&eacute;ter ce HOWTO. Si plusieurs demandes int&eacute;ressantes me parviennent, je compl&egrave;terai 
     le document dans les versions futures.
     </para>
    </listitem>

    <listitem>
     <para>
      Q: Quand un client se connecte &agrave; https://myserver.org un message d'erreur du genre "Certificat non valide" apparait.
     </para>

     <para>
      R: Le certificat cr&eacute;&eacute; dans ce HOWTO est juste un certificat auto-sign&eacute;. Cela signifie que la CA 
      (Autorit&eacute; des Certification) est vous-m&ecirc;me. Votre CA n'est pas reconnue comme une CA valide par les navigateurs.
      Vous pouvez installer les certificats sur vos machines clientes (dans un petit r&eacute;seau) ou installer un certificat
      fourni par une CA reconnue par la majorit&eacute; des navigateurs. Un exemple de CA reconnue est Verisign <ulink url="http://www.verisign.com">http://www.verisign.com</ulink>. 
      Ce genre de certificat coûte environ 300 USD par an, mais cela d&eacute;pend des longueurs de cl&eacute;s utilis&eacute;es (56 ou 128 bits).
      Vous pouvez &eacute;galement d&eacute;finir votre propre CA et en faire avaler le certificat par les butineurs courants.
     </para>
    </listitem>


    <listitem>
     <para>
      Q: Quand j'acc&egrave;de &agrave; un script php, le navigateur me propose son t&eacute;l&eacute;chargement.
     </para>

     <para>
      R: Vous avez oubli&eacute; d'indiquer &agrave; Apache ce qu'il doit faire des fichiers php. Les fichiers php ne sont donc pas 
      analys&eacute;s par le moteur php. Pour ce faire, ajoutez le type d'application comme ceci :<xref linkend="build-php">
     </para>
    </listitem>
    <listitem>
     <para>
      Q: Est-ce que ce HOWTO fonctionne avec d'autres plates-formes ?
     </para>

     <para>
      R: Pas sûr. Solaris devrait fonctionner, AIX et HP-UX non. Je n'ai pas encore eu le temps de tester sur FreeBSD. 
      Mon objectif est de proposer une version de ce HOWTO pour les principaux UN*X.
     </para>
    </listitem>

   </itemizedlist>

   <comment>

   Si vous avez des questions, envoyez-les moi et je publierai ici les plus courantes (anonymement).

   </comment>

 </sect1>


</article>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:nil
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->


