<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1878627:1933084 (outdated) -->
+<!-- English Revision: 1933084 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<manualpage metafile="cgi.xml.meta">
<parentdocument href="./">Recettes et tutoriels</parentdocument>
- <title>Tutoriel Apache : Contenu dynamique basé sur CGI</title>
+ <title>Didacticiel du serveur HTTP Apache : Contenu dynamique basé sur CGI</title>
<section id="intro">
<title>Introduction</title>
s'agit d'une méthode simple pour ajouter du contenu dynamique à votre site
web en utilisant votre langage de programmation préféré.
Ce document est une introduction à la configuration de CGI sur votre
- serveur web Apache, et une initiation à l'écriture de programmes
+ serveur web HTTP Apache, et une initiation à l'écriture de programmes
CGI.</p>
</section>
<section id="configuring">
- <title>Configurer Apache pour autoriser CGI</title>
+ <title>Configurer httpd pour autoriser CGI</title>
- <p>Apache doit être configuré pour permettre l'exécution des
+ <p>httpd doit être configuré pour permettre l'exécution des
programmes CGI, pour que vos programmes CGI puissent fonctionner
correctement. Il existe plusieurs méthodes pour y parvenir.</p>
- <note type="warning">Note: si Apache a été compilé avec le support
+ <note type="warning">Note: si httpd a été compilé avec le support
des modules partagés (DSO), vous devez vous assurer que le module CGI est
chargé ; vous devez pour cela vérifier que la directive <directive
module="mod_so">LoadModule</directive> correspondante n'a pas été
<title>ScriptAlias</title>
<p>La directive <directive
- module="mod_alias">ScriptAlias</directive> indique à Apache qu'un
- répertoire particulier est dédié aux programmes CGI. Apache
+ module="mod_alias">ScriptAlias</directive> indique à httpd qu'un
+ répertoire particulier est dédié aux programmes CGI. httpd
considérera que tout fichier situé dans ce répertoire est un
programme CGI, et tentera de l'exécuter lorsque cette ressource
fera l'objet d'une requête client.</p>
</highlight>
<p>Cet exemple est tiré de votre fichier de configuration
- <code>httpd.conf</code> par défaut, si vous avez installé Apache
+ <code>httpd.conf</code> par défaut, si vous avez installé httpd
dans son répertoire par défaut. La directive <directive
module="mod_alias">ScriptAlias</directive> est similaire à la
directive <directive module="mod_alias">Alias</directive>, qui
réside dans le fait que <directive>ScriptAlias</directive> indique
en plus que tout ce qui se trouve sous le préfixe d'URL doit être
considéré comme un programme CGI. Ainsi, l'exemple ci-dessus
- indique à Apache que toute requête pour une ressource commençant
+ indique à httpd que toute requête pour une ressource commençant
par <code>/cgi-bin/</code> doit être servie depuis le répertoire
<code>/usr/local/apache2/cgi-bin/</code>, et doit être traitée en
tant que programme CGI.</p>
<p>Par exemple, si une requête pour l'URL
<code>http://www.example.com/cgi-bin/test.pl</code> est
- effectuée, Apache tentera d'exécuter le fichier
+ effectuée, httpd tentera d'exécuter le fichier
<code>/usr/local/apache2/cgi-bin/test.pl</code> et en renverra la
sortie. Bien entendu, le fichier doit exister, être exécutable, et
- retourner sa sortie d'une manière particulière, sinon Apache
+ retourner sa sortie d'une manière particulière, sinon httpd
renverra un message d'erreur.</p>
</section>
</Directory>
</highlight>
- <p>La directive ci-dessus indique à Apache qu'il doit permettre
+ <p>La directive ci-dessus indique à httpd qu'il doit permettre
l'exécution des fichiers CGI. Vous devez aussi indiquer au serveur
quels fichiers sont des fichiers CGI. La directive <directive
module="mod_mime">AddHandler</directive> suivante indique au
<p>Même si Perl ne vous est pas familier, vous devriez être
capable de comprendre le fonctionnement de ce programme. La
- première ligne indique à Apache (ou à toute interface à partir de
+ première ligne indique à httpd (ou à toute interface à partir de
laquelle le programme s'exécute) que ce programme peut être
exécuté en fournissant son fichier à l'interpréteur
<code>/usr/bin/perl</code>. La seconde ligne affiche la
<dt>Le code source de votre programme CGI ou un message "POST
Method Not Allowed"</dt>
- <dd>Cela signifie que vous n'avez pas configuré Apache de manière
+ <dd>Cela signifie que vous n'avez pas configuré httpd de manière
à ce qu'il puisse traiter votre programme CGI. Relisez la section
- sur la <a href="#configuring">configuration d'Apache</a>, et
+ sur la <a href="#configuring">configuration de httpd</a>, et
essayez de trouver votre erreur.</dd>
<dt>Un message commençant par "Forbidden"</dt>
<dd>Ce type de message est révélateur d'un problème de
droits. Consultez le <a href="#errorlogs">journal des erreurs
- d'Apache</a> et la section ci-dessous sur les <a
+ de httpd</a> et la section ci-dessous sur les <a
href="#permissions">droits des fichiers</a>.</dd>
<dt>Un message contenant "Internal Server Error"</dt>
<dd>Si vous consultez le <a href="#errorlogs">journal des erreurs
- d'Apache</a>, vous y trouverez probablement des messages du type
+ de httpd</a>, vous y trouverez probablement des messages du type
"Premature end of script headers" (Fin prématurée des en-têtes de
script), éventuellement accompagnés d'un message d'erreur généré
par votre programme CGI. Dans ce cas, il va vous falloir lire
<p>Si votre programme CGI dépend de <a href="#env">variables
d'environnement</a> non standards, vous devrez vous assurez que
- ces variables lui sont bien transmises par Apache.</p>
+ ces variables lui sont bien transmises par httpd.</p>
<p>Lorsque des en-têtes HTTP ne sont pas transmis à
l'environnement, assurez-vous qu'ils sont bien formatés selon la
</example>
<p>(N'invoquez pas l'interpréteur <code>perl</code>. Le shell et
- Apache doivent être capable de le déterminer à partir de <a
+ httpd doivent être capable de le déterminer à partir de <a
href="#pathinformation">l'information sur le chemin</a> située sur
la première ligne du script.)</p>
<p>La première chose que vous devriez voir affichée par votre
programme est un ensemble d'en-têtes HTTP, comprenant entre autres
le <code>Content-Type</code>, et suivi d'une ligne vide. Si vous
- voyez quoi que ce soit d'autre, Apache renverra l'erreur
+ voyez quoi que ce soit d'autre, httpd renverra l'erreur
<code>Premature end of script headers</code> si vous tentez
d'exécuter le programme depuis le serveur. Voir <a
href="#writing">Ecriture d'un programme CGI</a> ci-dessus pour
<p>Pour savoir si vous pouvez utiliser suexec, tapez la commande
<code>apachectl -V</code>, et regardez le chemin indiqué par
- <code>SUEXEC_BIN</code>. Si au démarrage d'Apache, ce dernier
+ <code>SUEXEC_BIN</code>. Si au démarrage d'httpd, ce dernier
trouve un exécutable <program>suexec</program> dans ce chemin,
suexec sera activé.</p>
définissent aussi des variables d'environnement, de façon à ce
qu'ils puissent communiquer entre eux. Ces variables définissent
entre autre le type de navigateur (Netscape, IE, Lynx), le type de
- serveur (Apache, IIS, WebSite), le nom du programme CGI en cours
+ serveur (httpd, IIS, WebSite), le nom du programme CGI en cours
d'exécution, etc...</p>
<p>Ces variables sont à la disposition du programmeur CGI, et
<p>Ce programme CGI basique en Perl permet d'afficher toutes les
variables d'environnement qui sont échangées. Deux programmes
- similaires sont fournis avec la distribution d'Apache et situés
+ similaires sont fournis avec la distribution de httpd et situés
dans le répertoire <code>cgi-bin</code>.
Notez que certaines variables sont
obligatoires, alors que d'autres sont optionnelles, si bien que
vous verrez s'afficher certaines variables qui ne font pas partie
- de la liste officielle. De plus, Apache vous propose de nombreuses
+ de la liste officielle. De plus, httpd vous propose de nombreuses
méthodes pour <a href="../env.html">ajouter vos propres
variables d'environnement</a> aux variables de base fournies par
défaut.</p>
<p>Notez que les questions à propos de problèmes CGI ne doivent
<strong>jamais</strong> être postées dans la base de données de
- bogues d'Apache, à moins que vous ne soyez sûr d'avoir trouvé un
- problème dans le code source d'Apache.</p>
+ bogues de httpd, à moins que vous ne soyez sûr d'avoir trouvé un
+ problème dans le code source de httpd.</p>
</section>
</manualpage>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1657407:1932664 (outdated) -->
+<!-- English Revision: 1932664 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
par codage du quadruplet de 144 bits (adresse IP sur 32 bits, pid
sur 32 bits, repère de temps sur 32 bits, compteur 16 bits et index
de threads sur 32 bits) en
- utilisant l'alphabet <code>[A-Za-z0-9@-]</code> d'une manière
+ utilisant l'alphabet <code>[A-Za-z0-9_-]</code> d'une manière
similaire à celle du codage MIME base64, et sa valeur se présente
sous la forme d'une chaîne de 24 caractères. L'alphabet MIME base64
est en fait <code>[A-Za-z0-9+/]</code> ; cependant, les caractères
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1592205:1933054 (outdated) -->
+<!-- English Revision: 1933054 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
certificats sont enregistrés :</p>
<example>
- $ ctlogconfig /path/to/conf/log-config configure-url http://log1.example.com/<br />
- $ ctlogconfig /path/to/conf/log-config configure-url http://log2.example.com/<br />
- $ ctlogconfig /path/to/conf/log-config dump<br />
- Log entry:<br />
- Record 1<br />
- Log id : (not configured)<br />
- Public key file: (not configured)<br />
- URL : http://log1.example.com/<br />
- Time range : -INF to +INF<br />
-<br />
- Log entry:<br />
- Record 2<br />
- Log id : (not configured)<br />
- Public key file: (not configured)<br />
- URL : http://log2.example.com/<br />
- Time range : -INF to +INF<br />
+<highlight language="sh">
+$ ctlogconfig /path/to/conf/log-config configure-url http://log1.example.com/
+$ ctlogconfig /path/to/conf/log-config configure-url http://log2.example.com/
+$ ctlogconfig /path/to/conf/log-config dump
+Log entry:
+ Record 1
+ Log id : (not configured)
+ Public key file: (not configured)
+ URL : http://log1.example.com/
+ Time range : -INF to +INF
+
+Log entry:
+ Record 2
+ Log id : (not configured)
+ Public key file: (not configured)
+ URL : http://log2.example.com/
+ Time range : -INF to +INF
+</highlight>
</example>
<p>Nous pouvons maintenant attribuer une clé publique à un log où le
a déjà été configuré.</p>
<example>
- $ ctlogconfig /path/to/conf/log-config configure-public-key \#2 /path/to/conf/log2-pub.pem<br />
- $ ctlogconfig /path/to/conf/log-config dump<br />
- Log entry:<br />
- Record 1<br />
- Log id : (not configured)<br />
- Public key file: (not configured)<br />
- URL : http://log1.example.com/<br />
- Time range : -INF to +INF<br />
-<br />
- Log entry:<br />
- Record 2<br />
- Log id : (not configured)<br />
- Public key file: /path/to/conf/log2-pub.pem<br />
- URL : http://log2.example.com/<br />
- Time range : -INF to +INF<br />
+<highlight language="sh">
+$ ctlogconfig /path/to/conf/log-config configure-public-key \#2 /path/to/conf/log2-pub.pem
+$ ctlogconfig /path/to/conf/log-config dump
+Log entry:
+ Record 1
+ Log id : (not configured)
+ Public key file: (not configured)
+ URL : http://log1.example.com/
+ Time range : -INF to +INF
+
+Log entry:
+ Record 2
+ Log id : (not configured)
+ Public key file: /path/to/conf/log2-pub.pem
+ URL : http://log2.example.com/
+ Time range : -INF to +INF
+</highlight>
</example>
</section>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1884207:1933136 (outdated) -->
+<!-- English Revision: 1933136 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
utilisateurs au format DBM</title>
<summary>
- <p><code>dbmmanage</code> permet de créer et de maintenir les
+ <p><program>dbmmanage</program> permet de créer et de maintenir les
fichiers au format DBM où sont stockés les noms d'utilisateurs et
mots de passe à des fins d'authentification de base des utilisateurs
HTTP via le module <module>mod_authn_dbm</module>. Il est possible
de restreindre l'accès aux ressources disponibles sur le serveur
HTTP Apache aux seuls utilisateurs spécifiés dans les fichiers créés
- par <code>dbmmanage</code>. Ce programme ne peut être utilisé
+ par <program>dbmmanage</program>. Ce programme ne peut être utilisé
qu'avec des fichiers d'utilisateurs au format DBM. Pour
l'utilisation de fichiers textes, voir le programme
<program>htpasswd</program>.</p>
GDBM, et Berkeley DB 2. Malheureusement, toutes ces bibliothèques
utilisent des formats de fichiers différents, et vous devez vous
assurer que le format de fichier utilisé par <var>nom-fichier</var>
- correspond au format attendu par <code>dbmmanage</code>.
- Actuellement, <code>dbmmanage</code> n'a aucun moyen de savoir à
+ correspond au format attendu par <program>dbmmanage</program>.
+ Actuellement, <program>dbmmanage</program> n'a aucun moyen de savoir à
quel type de fichier DBM il a à faire. S'il est utilisé avec un
format inapproprié, il ne renverra rien, ou pourra créer un fichier
DBM différent avec un nom différent, ou au pire, va corrompre le
fichier DBM si vous avez tenté de le modifier.</p>
- <p><code>dbmmanage</code> possède une liste de préférences en
+ <p><program>dbmmanage</program> possède une liste de préférences en
matière de formats DBM, définies dans le tableau
<code>@AnyDBM::ISA</code> au début du programme. Comme nous
préférons le format de fichier Berkeley DB 2, l'ordre dans lequel
- <code>dbmmanage</code> va rechercher les bibliothèques système est
+ <program>dbmmanage</program> va rechercher les bibliothèques système est
Berkeley DB 2, puis NDBM, GDBM et enfin SDBM. La première
- bibliothèque trouvée sera celle que <code>dbmmanage</code> tentera
+ bibliothèque trouvée sera celle que <program>dbmmanage</program> tentera
d'utiliser pour toutes les opérations sur les fichiers DBM. Cette
ordre est sensiblement différent de l'ordre standard de Perl
<code>@AnyDBM::ISA</code>, et de l'ordre utilisé par l'appel
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1884207:1933136 (outdated) -->
+<!-- English Revision: 1933136 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
l'authentification de base</title>
<summary>
- <p><code>htpasswd</code> permet de créer et de maintenir les
+ <p><program>htpasswd</program> permet de créer et de maintenir les
fichiers textes où sont stockés les noms d'utilisateurs et mots de
passe pour l'authentification de base des utilisateurs HTTP. Si
- <code>htpasswd</code> rencontre un problème d'accès à un fichier,
+ <program>htpasswd</program> rencontre un problème d'accès à un fichier,
que ce soit pour écrire dans le fichier de sortie, ou pour lire le
fichier d'entrée dans le but de le mettre à jour, il renvoie un code
d'erreur et n'effectue aucune modification.</p>
<p>Il est possible de limiter l'accès aux ressources du serveur HTTP
Apache aux seuls utilisateurs présents dans les fichiers créés par
- <code>htpasswd</code>. Ce programme ne sait gérer les noms
+ <program>htpasswd</program>. Ce programme ne sait gérer les noms
d'utilisateurs et mots de passe que s'ils sont stockés dans des
fichiers textes. Il peut cependant hasher et afficher les mots de
passe à des fins d'utilisation dans d'autres types de bases de
données. Pour utiliser une base de données DBM, voir le programme
<program>dbmmanage</program> ou <program>htdbm</program>.</p>
- <p><code>htpasswd</code> hashe les mots de passe en utilisant soit bcrypt,
+ <p><program>htpasswd</program> hashe les mots de passe en utilisant soit bcrypt,
une version de MD5 modifiée pour Apache, soit SHA1, soit la routine
<code>crypt()</code> du système. Les hashes basés sur SHA-2 (SHA-256 et
SHA-512) sont supportés pour <code>crypt()</code>. Les fichiers gérés par
- <code>htpasswd</code> peuvent contenir deux types de mots de passe ;
+ <program>htpasswd</program> peuvent contenir deux types de mots de passe ;
certaines entrées peuvent contenir des mots de passe hashés en MD5 ou
bcrypt, alors que d'autres entrées du même fichier contiendront des mots de
passe hashés avec <code>crypt()</code>.</p>
<dt><code>-p</code></dt>
<dd>Enregistre les mots de passe en clair. Bien que
- <code>htpasswd</code> supporte la création des mots de passe en
+ <program>htpasswd</program> supporte la création des mots de passe en
clair sur toutes les plates-formes, le démon
<program>httpd</program> n'accepte les mots de passe en clair que
sous Windows et Netware.</dd>
</section>
<section id="exit"><title>Valeur renvoyée</title>
- <p><code>htpasswd</code> renvoie 0 ("true") si le nom d'utilisateur
+ <p><program>htpasswd</program> renvoie 0 ("true") si le nom d'utilisateur
et le mot de passe ont été enregistrés ou mis à jour avec succès
- dans le <var>fichier-mots-de-passe</var>. <code>htpasswd</code>
+ dans le <var>fichier-mots-de-passe</var>. <program>htpasswd</program>
renvoie <code>1</code> s'il a rencontré un problème d'accès aux
fichiers, <code>2</code> si la ligne de commande comportait une
erreur de syntaxe, <code>3</code> si le mot de passe entré
<code>jsmith</code>. Le mot de passe est demandé à l'opérateur. Le
mot de passe sera hashé en utilisant l'algorithme MD5
modifié pour Apache. Si le fichier spécifié
- n'existe pas, <code>htpasswd</code> renverra un code d'erreur.</p>
+ n'existe pas, <program>htpasswd</program> renverra un code d'erreur.</p>
<example>
htpasswd -c /home/doe/public_html/.htpasswd jane
<p>Crée un nouveau fichier de mots de passe et y enregistre une
entrée pour l'utilisateur <code>jane</code>. Le mot de passe est
demandé à l'opérateur. Si le fichier existe et ne peut être ni lu ni
- écrit, il n'est pas modifié et <code>htpasswd</code> affichera un
+ écrit, il n'est pas modifié et <program>htpasswd</program> affichera un
message et renverra un code d'erreur.</p>
<example>
<section id="security"><title>Considérations à propos de sécurité</title>
<p>Les fichiers de mots de passe Web comme ceux que gère
- <code>htpasswd</code> ne doivent <em>pas</em> être situés dans
+ <program>htpasswd</program> ne doivent <em>pas</em> être situés dans
l'espace d'URI du serveur Web -- en d'autres termes, il ne doit pas
être possible d'y accéder à partir d'un navigateur.</p>
<section id="restrictions"><title>Restrictions</title>
<p>Sur les plates-formes Windows, la taille des mots de passe
- hashés avec <code>htpasswd</code> est limitée à <code>255</code>
+ hashés avec <program>htpasswd</program> est limitée à <code>255</code>
caractères. Les mots de passe dont la taille est supérieure seront
tronqués.</p>
- <p>L'algorithme MD5 utilisé par <code>htpasswd</code> est spécifique
+ <p>L'algorithme MD5 utilisé par <program>htpasswd</program> est spécifique
à Apache ; les mots de passe hashés en utilisant cet algorithme
seront inutilisables sur d'autres serveurs Web.</p>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1906433:1933136 (outdated) -->
+<!-- English Revision: 1933136 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
ces derniers dans un "pipe"</title>
<summary>
- <p><code>rotatelogs</code> est un programme simple à utiliser en
+ <p><program>rotatelogs</program> est un programme simple à utiliser en
conjonction avec la fonctionnalité d'Apache de redirection dans un
"pipe" des fichiers journaux. Il supporte une rotation basée sur un
intervalle de temps ou une taille maximale du journal.</p>
continue malgré les rotations via une commande du style <code>tail -F
nom-lien</code>.</p>
<p>Si le nom du lien spécifié n'est pas un chemin absolu, il est relatif au
-répertoire de travail de <code>rotatelogs</code> qui correspond à la valeur de
+répertoire de travail de <program>rotatelogs</program> qui correspond à la valeur de
la directive <directive module="core">ServerRoot</directive> lorsque la commande
-<code>rotatelogs</code> est exécutée par le serveur.
+<program>rotatelogs</program> est exécutée par le serveur.
</p>
</dd>
<dt><code>-p</code> <var>programme</var></dt>
-<dd><p>Avec cette option, <code>rotatelogs</code> exécutera le programme
+<dd><p>Avec cette option, <program>rotatelogs</program> exécutera le programme
<var>programme</var> chaque fois qu'un nouveau fichier journal sera
ouvert. Le nom du fichier nouvellement ouvert est passé comme premier
argument au programme. Si l'exécution se produit après une rotation,
l'ancien nom du fichier journal est passé au programme comme second
argument.</p>
-<p> <code>rotatelogs</code>
+<p> <program>rotatelogs</program>
n'attend pas la fin du <var>programme</var> pour continuer son
exécution, et cessera tout enregistrement de codes d'erreur lorsqu'il
aura terminé son processus.</p>
<dt><code>-f</code></dt>
<dd>Ouvre le fichier journal immédiatement, dès que
-<code>rotatelogs</code> démarre, au lieu d'attendre la lecture de la
+<program>rotatelogs</program> démarre, au lieu d'attendre la lecture de la
première entrée de journal (pour les sites peu chargés, il peut
s'écouler un temps substantiel entre le démarrage du serveur et le
traitement de la première requête, temps pendant lequel le fichier
dans la même journée, le même nom de fichier va être généré, et la
rotation va écraser le fichier existant.</p>
<p>Si le nom du fichier journal n'est pas un chemin absolu, il est relatif au
-répertoire de travail de <code>rotatelogs</code> qui correspond à la valeur de
+répertoire de travail de <program>rotatelogs</program> qui correspond à la valeur de
la directive <directive module="core">ServerRoot</directive> lorsque la commande
-<code>rotatelogs</code> est exécutée par le serveur.
+<program>rotatelogs</program> est exécutée par le serveur.
</p>
</dd>