1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
4 <!-- French translation : Lucien GENTIS -->
5 <!-- Reviewed by : Vincent Deffontaines -->
6 <!-- English Revision: 1772763 -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <manualpage metafile="upgrading.xml.meta">
27 <title>Mise à jour de la version 2.2 vers la version 2.4</title>
30 <p>Afin d'assister les utilisateurs lors de leurs opérations de mise à
31 jour, nous maintenons un document
32 qui comporte des informations critiques à l'attention des personnes qui
33 utilisent déjà le serveur HTTP Apache. Ces informations
34 ne sont que de brèves notes, et vous
35 trouverez plus d'informations dans le document <a
36 href="new_features_2_4.html">Nouvelles fonctionnalités</a>, ou dans
37 le fichier <code>src/CHANGES</code>. Les développeurs d'applications
38 et de modules trouveront un résumé des modifications de l'API dans la
39 vue d'ensemble <a href="developer/new_api_2_4.html">Mises à jour de
42 <p>Ce document présente les changements de comportement du serveur qui
43 peuvent nécessiter une modification de la configuration, et la manière
44 d'utiliser la version 2.4 du serveur en parallèle avec la
45 version 2.2. Pour tirer parti des nouvelles fonctionnalités de la
46 version 2.4, reportez-vous au document "Nouvelles fonctionnalités".</p>
48 <p>Ce document ne décrit que les modifications intervenues entre les versions
49 2.2 et 2.4. Si vous effectuez une mise à jour depuis la version 2.0, vous
50 devez aussi consulter le
51 <a href="http://httpd.apache.org/docs/2.2/upgrading.html">document de mise
52 à jour de 2.0 vers 2.2.</a></p>
55 <seealso><a href="new_features_2_4.html">Vue d'ensemble des nouvelles
56 fonctionnalités du serveur HTTP Apache 2.4</a></seealso>
58 <section id="compile-time">
59 <title>Modifications des paramètres de compilation</title>
60 <p>Le processus de compilation est très similaire à celui de la
61 version 2.2. Dans la plupart des cas, vous pourrez utiliser votre
62 ancienne ligne de commande <code>configure</code> (telle qu'elle
63 est enregistrée dans le fichier <code>build/config.nice</code>
64 situé dans le répertoire de compilation du serveur). Voici certains
65 changements intervenus dans la configuration par défaut :</p>
68 <li>Les modules suivants ont été supprimés : mod_authn_default,
69 mod_authz_default et mod_mem_cache. Si vous utilisiez
70 mod_mem_cache sous la version 2.2, vous devez maintenant utiliser
71 <module>mod_cache_disk</module> dans la version 2.4.</li>
73 <li>Toutes les implémentations de répartition de charge ont été
74 déplacées vers des sous-modules spécifiques de mod_proxy, comme
75 <module>mod_lbmethod_bybusyness</module>. Vous devrez compiler et
76 chargés tous les modules correspondants que votre configuration
79 <li>Le support de BeOS, TPF, et des anciennes plates-formes telles
80 que A/UX, Next, et Tandem a été supprimé, car
81 elles ne sont plus considérées comme maintenues.</li>
83 <li>configure: les modules dynamiques (DSO) sont compilés par
86 <li>configure: par défaut, seul un jeu de modules de base est
87 chargé. Les autres directives <directive>LoadModule</directive>
88 sont mises en commentaires dans le fichier de configuration.</li>
90 <li>configure: le jeu de modules "most" est compilé par défaut</li>
92 <li>configure: le jeu de modules "reallyall" ajoute les modules de
93 développeur au jeu "all".</li>
98 <section id="run-time">
99 <title>Modifications de la configuration à l'exécution</title>
100 <p>Des changements significatifs dans la configuration de
101 l'autorisation, ainsi que quelques changements mineurs, peuvent
102 nécessiter une mise à jour des fichiers de configuration de la version
103 2.2 avant de les utiliser sous la version 2.4.</p>
106 <title>Autorisation</title>
108 <p>Tout fichier de configuration qui gère des autorisations devra
109 probablement être mis à jour.</p>
111 <p>Vous devez vous reporter au document <a
112 href="howto/auth.html">Authentification, autorisation et contrôle
113 d'accès</a>, et plus particulièrement à la section <a
114 href="howto/auth.html#beyond">Plus loin qu'une simple
115 autorisation</a> qui explique les nouveaux mécanismes permettant de
116 contrôler l'ordre dans lequel les directives d'autorisation sont
119 <p>Les directives qui contrôlent la manière dont les modules
120 d'autorisation réagissent lorsqu'ils ne reconnaissent pas
121 l'utilisateur authentifié ont été supprimées : elles comprennent les
122 directives AuthzLDAPAuthoritative, AuthzDBDAuthoritative,
123 AuthzDBMAuthoritative, AuthzGroupFileAuthoritative,
124 AuthzUserAuthoritative et AuthzOwnerAuthoritative. Ces directives
125 ont été remplacées par les directives plus explicites <directive
126 module="mod_authz_core">RequireAny</directive>, <directive
127 module="mod_authz_core">RequireNone</directive>, et <directive
128 module="mod_authz_core">RequireAll</directive>.</p>
130 <p>Si vous utilisez <module>mod_authz_dbm</module>, vous devez
131 mettre à jour votre configuration en remplaçant les directives du
132 style <code>Require group ...</code> par des directives du style
133 <code>Require dbm-group ...</code>.</p>
135 <section id="access">
136 <title>Contrôle d'accès</title>
138 <p>Dans la version 2.2, le contrôle d'accès basé sur le nom d'hôte
139 du client, son adresse IP, ou d'autres caractéristiques de la
140 requête était assuré via les directives <directive
141 module="mod_access_compat">Order</directive>, <directive
142 module="mod_access_compat">Allow</directive>, <directive
143 module="mod_access_compat">Deny</directive>, et <directive
144 module="mod_access_compat">Satisfy</directive>.</p>
146 <p>Dans la version 2.4, ce contrôle d'accès est assuré, comme tout
147 contrôle d'autorisation, par le nouveau module
148 <module>mod_authz_host</module>. Bien que le module
149 <module>mod_access_compat</module> assure la
150 compatibilité avec les anciennes configurations, les anciennes
151 directives de contrôle d'accès devront être remplacées par les
152 nouveaux mécanismes d'authentification.</p>
154 <note><title>Mélanger anciennes et nouvelles directives</title>
155 <p>Mélanger d'anciennes directives comme <directive
156 module="mod_access_compat">Order</directive>, <directive
157 module="mod_access_compat">Allow</directive> ou <directive
158 module="mod_access_compat">Deny</directive> avec des nouvelles comme
159 <directive module="mod_authz_core">Require</directive> est techniquement
160 possible mais déconseillé. En effet, <module>mod_access_compat</module> a
161 été conçu pour supporter des configurations ne contenant que des anciennes
162 directives afin de faciliter le passage à la version 2.4. Les
163 exemples ci-dessous vous permettront de vous faire une meilleure idée des
164 problèmes qui peuvent survenir.
168 <p>Voici quelques exemples de contrôle d'accès avec l'ancienne et
169 la nouvelle méthode :</p>
171 <p>Dans cet exemple, il n'y a pas d'authentification et toutes les
172 requêtes sont rejetées :</p>
174 <title>version 2.2 :</title>
175 <highlight language="config">
181 <title>version 2.4 :</title>
182 <highlight language="config">
187 <p>Dans cet exemple, il n'y a pas d'authentification et toutes les
188 requêtes sont acceptées :</p>
190 <title>version 2.2 :</title>
191 <highlight language="config">
197 <title>version 2.4 :</title>
198 <highlight language="config">
203 <p>Dans l'exemple suivant, il n'y a pas d'authentification et tous les
204 hôtes du domaine example.org
205 ont l'autorisation d'accès, tous les autres étant rejetés :</p>
208 <title>version 2.2 :</title>
209 <highlight language="config">
212 Allow from example.org
216 <title>version 2.4 :</title>
217 <highlight language="config">
218 Require host example.org
222 <p>Dans l'exemple suivant, le mélange d'anciennes et de nouvelles
223 directives produit des résultats inattendus.</p>
226 <title>Mélange d'anciennes et de nouvelles directives : RESULTAT
228 <highlight language="config">
229 DocumentRoot "/var/www/html"
231 <Directory "/">
237 <Location "/server-status">
238 SetHandler server-status
242 access.log - GET /server-status 403 127.0.0.1
243 error.log - AH01797: client denied by server configuration: /var/www/html/server-status
246 <p>Pourquoi httpd interdit l'accès à server-status alors que la
247 configuration semble l'autoriser ? Parce que dans ce scénario de <a
248 href="sections.html#merging">fusion</a> de configuration, les
249 directives de <module>mod_access_compat</module> sont prioritaires par
250 rapport à celles de <module>mod_authz_host</module>.</p>
252 <p>L'exemple suivant quant à lui produit un résultat conforme :</p>
255 <title>Mélange d'anciennes et de nouvelles directives : RESULTAT
257 <highlight language="config">
258 DocumentRoot "/var/www/html"
260 <Directory "/">
265 <Location "/server-status">
266 SetHandler server-status
272 access.log - GET /server-status 200 127.0.0.1
275 <p>En conclusion, même si une configuration hybride peut fonctionner,
276 essayez de l'éviter lors de la mise à jour : soit conservez les anciennes
277 directives, puis migrez-les vers les nouvelles ultérieurement, soit
278 effectuez une migration immédiate de toutes les anciennes directives vers
284 <p>Dans de nombreuses configurations avec authentification où la directive
285 <directive>Satisfy</directive> était définie à sa valeur par défaut
286 <em>ALL</em>, les lignes de configuration qui désactivent le contrôle
287 d'accès basé sur l'hôte sont maintenant omises :</p>
290 <title>Version 2.2 :</title>
291 <highlight language="config">
294 AuthBasicProvider File
295 AuthUserFile /example.com/conf/users.passwd
301 <title>Version 2.4 :</title>
302 <highlight language="config">
303 # Pas besoin de remplacer les directives Order et deny
304 AuthBasicProvider File
305 AuthUserFile /example.com/conf/users.passwd
311 <p>Dans les configurations où l'authentification et le contrôle d'accès se
312 combinaient dans un but précis, les directives de contrôle d'accès doivent
313 être migrées. Dans l'exemple suivant, les requêtes qui correspondent aux
314 <em>deux</em> critères sont acceptées :</p>
316 <title>Version 2.2 :</title>
317 <highlight language="config">
320 # ALL est la valeur par défaut de Satisfy
323 AuthBasicProvider File
324 AuthUserFile /example.com/conf/users.passwd
330 <title>Version 2.4 :</title>
331 <highlight language="config">
332 AuthBasicProvider File
333 AuthUserFile /example.com/conf/users.passwd
342 <p>Dans les configurations où l'authentification et le contrôle d'accès se
343 combinaient dans un but précis, les directives de contrôle d'accès doivent
344 être migrées. Dans l'exemple suivant, les requêtes qui correspondent à
345 <em>au moins un</em> critère sont acceptées :</p>
347 <title>Version 2.2 :</title>
348 <highlight language="config">
353 AuthBasicProvider File
354 AuthUserFile /example.com/conf/users.passwd
360 <title>Version 2.4 :</title>
361 <highlight language="config">
362 AuthBasicProvider File
363 AuthUserFile /example.com/conf/users.passwd
365 # Implicite : <RequireAny>
373 <section id="config">
374 <title>Autres changements dans la configuration</title>
376 <p>D'autres ajustements mineurs peuvent s'avérer nécessaires pour
377 certaines configurations particulières, comme décrit ci-dessous.</p>
380 <li><directive>MaxRequestsPerChild</directive> a été renommée en
381 <directive module="mpm_common">MaxConnectionsPerChild</directive>;
382 ce nouveau nom reflète mieux l'usage de cette directive.
383 L'ancien nom est encore supporté.</li>
385 <li>La directive <directive>MaxClients</directive> a
386 été renommée en <directive
387 module="mpm_common">MaxRequestWorkers</directive>; ce nouveau
388 nom reflète mieux l'usage de cette directive. Pour les
389 modules multiprocessus asynchrones, comme <module>event</module>, le nombre
390 maximal de clients n'est pas équivalent au nombre de threads du
391 worker. L'ancien nom est encore supporté.</li>
393 <li>La directive <directive
394 module="core">DefaultType</directive> ne produit plus aucun
395 effet, si ce n'est d'émettre un avertissement si elle est
396 définie à une valeur autre que <code>none</code>. D'autres
397 directives de configuration la remplacent dans la version 2.4.
400 <li>La valeur par défaut de la directive <directive
401 module="core">AllowOverride</directive> est maintenant
402 <code>None</code>.</li>
404 <li>La valeur par défaut de la directive <directive
405 module="core">EnableSendfile</directive> est maintenant Off.</li>
407 <li>La valeur par défaut de la directive <directive
408 module="core">FileETag</directive> est maintenant "MTime Size"
411 <li><module>mod_dav_fs</module>: le format du fichier <directive
412 module="mod_dav_fs">DavLockDB</directive> a changé pour les systèmes
413 avec inodes. L'ancien fichier <directive
414 module="mod_dav_fs">DavLockDB</directive> doit être supprimé dans le
415 cadre de la mise à jour.
418 <li>La directive <directive module="core">KeepAlive</directive>
419 n'accepte que les valeurs <code>On</code> ou <code>Off</code>.
420 Avant, toute valeur autre que "Off" ou "0" était traitée comme
423 <li>Les directives AcceptMutex, LockFile, RewriteLock, SSLMutex,
424 SSLStaplingMutex et WatchdogMutexPath ont été remplacées par la
425 directive unique <directive module="core">Mutex</directive>.
426 Vous devez évaluer l'impact de ces directives obsolètes dans
427 votre configuration version 2.2 afin de déterminer si elles
428 peuvent être simplement supprimées, ou si elles doivent être
429 remplacées par la directive <directive
430 module="core">Mutex</directive>.</li>
432 <li><module>mod_cache</module>: la directive <directive
433 module="mod_cache">CacheIgnoreURLSessionIdentifiers</directive>
434 effectue maintenant une correspondance exacte dans la chaîne de
435 paramètres au lieu d'une correspondance partielle. Si votre
436 configuration mettait en jeu des sous-chaînes comme
437 <code>sessionid</code> pour correspondre à
438 <code>/une-application/image.gif;jsessionid=123456789</code>,
439 vous devez maintenant utiliser la chaîne de correspondance
440 complète <code>jsessionid</code>.
443 <li><module>mod_cache</module>: le second paramètre de la
444 directive <directive module="mod_cache">CacheEnable</directive>
445 ne concerne les contenus en mandat direct que s'ils débutent par
446 le protocole approprié. Dans les versions 2.2 et antérieures, un
447 paramètre tel que '/' concernait tous les contenus.</li>
449 <li><module>mod_ldap</module>: la directive <directive
450 module="mod_ldap">LDAPTrustedClientCert</directive> s'utilise
451 maintenant exclusivement au sein d'une configuration de niveau
452 répertoire. Si vous utilisez cette directive, passez en revue
453 votre configuration pour vous assurer qu'elle est bien présente
454 dans tous les contextes de répertoire nécessaires.</li>
456 <li><module>mod_filter</module>: la syntaxe de la directive
457 <directive module="mod_filter">FilterProvider</directive> utilise
458 maintenant une expression booléenne pour déterminer si un filtre
462 <li><module>mod_include</module>:
464 <li>L'élément <code>#if expr</code> utilise maintenant le
465 nouvel <a href="expr.html">interpréteur d'expressions</a>.
466 L'ancienne syntaxe peut être réactivée via la directive
468 module="mod_include">SSILegacyExprParser</directive>.
470 <li>Dans la portée du répertoire, une directive de
471 configuration SSI* ne provoque plus la réinitialisation à
472 leur valeur par défaut de toutes les directives SSI* de
473 niveau répertoire.</li>
477 <li><module>mod_charset_lite</module> : l'option
478 <code>DebugLevel</code> a été supprimée en faveur d'une
479 configuration de la directive <directive
480 module="core">LogLevel</directive> au niveau répertoire.
483 <li><module>mod_ext_filter</module> : l'option
484 <code>DebugLevel</code> a été supprimée en faveur d'une
485 configuration de la directive <directive
486 module="core">LogLevel</directive> au niveau répertoire.
489 <li><module>mod_proxy_scgi</module>: certaines applications web
490 ne fonctionneront plus correctement avec la nouvelle
491 configuration de <code>PATH_INFO</code> qui est différente de
492 celle de la version 2.2. La configuration
494 restaurée en définissant la variable
495 <code>proxy-scgi-pathinfo</code>.</li>
497 <li><module>mod_ssl</module>: le contrôle de révocation des
498 certificats basé sur les CRL doit être maintenant explicitement
499 configuré via la directive <directive
500 module="mod_ssl">SSLCARevocationCheck</directive>.
503 <li><module>mod_substitute</module>: la taille maximale d'une
504 ligne est maintenant 1Mo.
507 <li><module>mod_reqtimeout</module>: si ce module est chargé, il
508 définit maintenant certains temps d'attente par défaut.</li>
510 <li><module>mod_dumpio</module>: la directive
511 <directive>DumpIOLogLevel</directive> n'est plus supportée. Les
512 données sont toujours enregistrées au niveau <code>trace7</code>
513 de <directive module="core">LogLevel</directive></li>
515 <li>Jusqu'à la version 2.2, sur les plateformes de style Unix,
516 les commandes de redirection des logs définies via <directive
517 module="core">ErrorLog</directive> ou <directive
518 module="mod_log_config">CustomLog</directive> étaient invoquées
519 en utilisant <code>/bin/sh -c</code>. A
520 partir de la version 2.4, les commandes de redirection des logs
521 sont exécutées directement. Pour retrouver l'ancien
522 comportement, voir la <a href="logs.html#piped">documentation
523 sur la redirection des logs</a></li>
530 <title>Changements divers</title>
533 <li><module>mod_auto_index</module>: extrait maintenant les titres
534 et affiche la description pour les fichiers .xhtml qui étaient
535 jusqu'alors ignorés.</li>
537 <li><module>mod_ssl</module> : le format par défaut des variables
538 <code>*_DN</code> a changé. Il est cependant encore possible
539 d'utiliser l'ancien format via la nouvelle option
540 <code>LegacyDNStringFormat</code> de la directive <directive
541 module="mod_ssl">SSLOptions</directive>. Le protocole SSLv2 n'est
542 plus supporté. Les directives <directive
543 module="mod_ssl">SSLProxyCheckPeerCN</directive> et
544 <directive module="mod_ssl">SSLProxyCheckPeerExpire</directive>
545 sont maintenant définies par défaut à On, et les requêtes mandatées
546 vers des serveurs HTTPS possèdant des certificats non conformes ou
547 périmés échoueront donc avec un code d'erreur 502 (Bad gateway).</li>
549 <li><program>htpasswd</program> utilise maintenant par défaut les
550 condensés MD5 sur toutes les plates-formes.</li>
552 <li>La directive <directive
553 module="core">NameVirtualHost</directive> n'a plus aucun effet, si
554 ce n'est l'émission d'un avertissement. Toute combinaison
555 adresse/port apparaissant dans plusieurs serveurs virtuels est
556 traitée implicitement comme un serveur virtuel basé sur le nom.
559 <li><module>mod_deflate</module> n'effectue plus de compression
560 s'il s'aperçoit que la quantité de données ajoutée par la
561 compression est supérieure à la quantité de données à compresser.
564 <li>Les pages d'erreur multilingues de la version 2.2.x ne
565 fonctionneront qu'après avoir été corrigées pour
566 respecter la nouvelle syntaxe de l'élément <code>#if expr=</code>
567 du module <module>mod_include</module>, ou si la directive
568 <directive module="mod_include">SSILegacyExprParser</directive> a
569 été activée pour le répertoire contenant les pages d'erreur.
572 <li>La fonctionnalité fournie par <code>mod_authn_alias</code>
573 dans les précédentes versions (en fait la directive
574 <directive module="mod_authn_core">AuthnProviderAlias</directive>)
575 est maintenant fournie par <module>mod_authn_core</module>.
578 <li><module>mod_cgid</module> utilise la valeur de la directive
579 <directive module="core">Timeout</directive> du serveur pour
580 limiter le temps d'attente entre les sorties d'un programme CGI.
581 La valeur de ce temps d'attente peut maintenant être modifiée via
582 la directive <directive
583 module="mod_cgid">CGIDScriptTImeout</directive>.
590 <section id="third-party">
591 <title>Modules tiers</title>
593 <p>Tous les modules tiers doivent être recompilés pour la
594 version 2.4 avant d'être chargés.</p>
596 <p>De nombreux modules tiers conçus pour la version 2.2
597 fonctionneront sans changement avec le serveur HTTP Apache
598 version 2.4. Certains nécessiteront cependant des modifications ; se
599 reporter à la vue d'ensemble <a
600 href="developer/new_api_2_4.html">Mise à jour de l'API</a>.</p>
602 <section id="commonproblems">
603 <title>Problèmes de mise à jour courants</title>
604 <ul><li>Erreurs au démarrage :
606 <li><code>Invalid command 'User', perhaps misspelled or defined by
607 a module not included in the server configuration</code> - chargez
608 le module <module>mod_unixd</module></li>
610 <li><code>Invalid command 'Require', perhaps misspelled or defined
611 by a module not included in the server configuration</code>, ou
612 <code>Invalid command 'Order', perhaps misspelled or defined by a
613 module not included in the server configuration</code> - chargez
614 le module <module>mod_access_compat</module>, ou mettez à jour
615 vers la version 2.4 les directives d'autorisation.</li>
617 <li><code>Ignoring deprecated use of DefaultType in line NN of
618 /path/to/httpd.conf</code> - supprimez la directive <directive
619 module="core">DefaultType</directive> et remplacez-la par les
620 directives de configuration appropriées.</li>
622 <li><code>Invalid command 'AddOutputFilterByType', perhaps misspelled
623 or defined by a module not included in the server configuration
624 </code> - la directive <directive
625 module="mod_filter">AddOutputFilterByType</directive> qui était
626 jusqu'alors implémentée par le module core, l'est maintenant par
627 le module mod_filter, qui doit donc être chargé.</li>
630 <li>Erreurs de traitement des requêtes :
632 <li><code>configuration error: couldn't check user: /path</code> -
633 chargez le module <module>mod_authn_core</module>.</li>
634 <li>Les fichiers <code>.htaccess</code> ne sont pas traités -
635 Vérifiez la présence d'une directive <directive
636 module="core">AllowOverride</directive> appropriée ; sa valeur par
637 défaut est maintenant <code>None</code>.</li>