Gentoo Archives: gentoo-commits

From: "Marion Age (titefleur)" <titefleur@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/proj/fr/apache/doc: troubleshooting.xml
Date: Wed, 30 Jul 2008 13:02:16
Message-Id: E1KOBJl-0005Wj-5r@stork.gentoo.org
1 titefleur 08/07/30 13:02:13
2
3 Added: troubleshooting.xml
4 Log:
5 Move to apache project
6
7 Revision Changes Path
8 1.1 xml/htdocs/proj/fr/apache/doc/troubleshooting.xml
9
10 file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/fr/apache/doc/troubleshooting.xml?rev=1.1&view=markup
11 plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/fr/apache/doc/troubleshooting.xml?rev=1.1&content-type=text/plain
12
13 Index: troubleshooting.xml
14 ===================================================================
15 <?xml version="1.0" encoding="UTF-8"?>
16 <!-- $Header $ -->
17 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
18
19 <guide link="/proj/fr/apache/doc/troubleshooting.xml" lang="fr">
20 <title>Résolution des problèmes avec Apache</title>
21
22 <author title="Auteur">
23 <mail link="vericgar@g.o">Michael Stewart</mail>
24 </author>
25 <author title="Contributor">
26 <mail link="beu@g.o">Elfyn McBratney</mail>
27 </author>
28 <author title="Contributor">
29 <mail link="kloeri@g.o">Bryan Østergaard</mail>
30 </author>
31 <author title="Contributor">
32 <mail link="hollow@g.o">Benedikt Böhm</mail>
33 </author>
34 <author title="Traducteur">
35 <mail link="cam@g.o">Camille Huot</mail>
36 </author>
37
38 <abstract>
39 Ce document décrit un certain nombre de moyens de trouver ce qui ne va pas dans
40 une installation Apache qui fonctionne mal.
41 </abstract>
42
43 <!-- The content of this document is licensed under the CC-BY-SA license -->
44 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
45 <license/>
46
47 <version>1.8</version>
48 <date>2007-11-29</date>
49
50 <chapter>
51 <title>Vérification des logs</title>
52 <section>
53 <body>
54
55 <p>
56 Si quelque chose cloche avec votre Apache alors que vous n'avez aucune idée de
57 ce que ça peut être, vous trouverez certainement des indices dans les fichiers
58 de logs (N.D.T.&nbsp;: journaux où est enregistré l'activité de l'application).
59 </p>
60
61 <p>
62 Il y a plusieurs fichiers de logs différents, mais certains d'entre eux peuvent
63 ne pas être présents sur votre système selon les modules que vous avez activés.
64 En principe, ils se trouvent dans <path>/var/log/apache2/</path>.
65 </p>
66
67 </body>
68 </section>
69
70 <section>
71 <title>access_log et ssl_access_log</title>
72 <body>
73
74 <pre caption="access_log">
75 67.185.0.236 - - [18/Jun/2005:12:05:50 -0700] "GET / HTTP/1.0" 200 721
76 10.0.1.80 - - [18/Jun/2005:12:11:07 -0700] "GET /~jaspenelle/__journal1.jpg HTTP/1.1" 200 19079
77 66.239.233.163 - - [18/Jun/2005:12:15:06 -0700] "GET /~jaspenelle/avy14.gif HTTP/1.0" 200 1661
78 67.185.60.155 - - [18/Jun/2005:12:18:48 -0700] "GET / HTTP/1.0" 200 721
79 67.185.0.236 - - [18/Jun/2005:12:25:39 -0700] "GET / HTTP/1.0" 200 721
80 10.0.1.80 - - [18/Jun/2005:12:28:04 -0700] "GET /~jaspenelle/avy14.gif HTTP/1.1" 200 1661
81 10.0.1.80 - - [18/Jun/2005:12:28:46 -0700] "GET /~jaspenelle/avy7.png HTTP/1.1" 200 13066
82 </pre>
83
84 <p>
85 Ce fichier contient simplement la liste de chaque fichier demandé à votre
86 serveur. À moins que vous ayiez changé la configuration par défaut, les lignes
87 sont en Common Log Format&nbsp;:
88 </p>
89
90 <pre caption="Syntaxe du Common Log Format">
91 adresseclient rfc931 utilisateur [date] "requête" statut octets
92 </pre>
93
94 <table>
95 <tr>
96 <ti>adresseclient</ti>
97 <ti>Nom d'hôte ou adresse IP du client qui a fait la requête.</ti>
98 </tr>
99 <tr>
100 <ti>rfc931</ti>
101 <ti>L'identifiant distant du client qui a fait la requête.</ti>
102 </tr>
103 <tr>
104 <ti>utilisateur</ti>
105 <ti>L'identifiant qu'a donné l'utilisateur pour s'identifier sur la page.</ti>
106 </tr>
107 <tr>
108 <ti>[date]</ti>
109 <ti>Date et heure de la requête.</ti>
110 </tr>
111 <tr>
112 <ti>"requête"</ti>
113 <ti>La requête complète telle qu'envoyée par le client.</ti>
114 </tr>
115 <tr>
116 <ti>statut</ti>
117 <ti>
118 Le code de retour HTTP renvoyé au client pour indiquer le statut de la
119 réponse.
120 </ti>
121 </tr>
122 <tr>
123 <ti>octets</ti>
124 <ti>
125 La taille du document transféré (en-tête «&nbsp;content-length&nbsp;»).
126 </ti>
127 </tr>
128 </table>
129
130 </body>
131 </section>
132 <section>
133 <title>error_log et ssl_error_log</title>
134 <body>
135
136 <pre caption="error_log">
137 [Mon Feb 07 23:33:18 2005] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec2)
138 [Mon Feb 07 23:33:18 2005] [notice] Digest: generating secret for digest authentication ...
139 [Mon Feb 07 23:33:18 2005] [notice] Digest: done
140 [Mon Feb 07 23:33:18 2005] [notice] Apache/2.0.52 (Gentoo/Linux) PHP/4.3.10 configured -- resuming normal operations
141 [Sat Jun 18 13:01:54 2005] [error] [client 10.0.1.80] File does not exist: /var/www/localhost/htdocs/favicon.ico
142 [Sat Jun 18 13:02:14 2005] [error] [client 10.0.1.80] File does not exist: /var/www/localhost/htdocs/favicon.ico
143 [Sat Jun 18 13:02:18 2005] [error] [client 10.0.1.80] File does not exist: /var/www/localhost/htdocs/favicon.ico
144 [Sat Jun 18 13:02:21 2005] [error] [client 10.0.1.80] File does not exist: /var/www/localhost/htdocs/favicon.ico
145 [Sat Jun 18 13:02:24 2005] [error] [client 10.0.1.80] File does not exist: /var/www/localhost/htdocs/favicon.ico
146 </pre>
147
148 <p>
149 Comme vous le voyez, ce fichier peut contenir beaucoup de choses, selon la
150 valeur de la directive <c>ErrorLevel</c> dans votre fichier
151 <path>httpd.conf</path>. Il vous indique si Apache a démarré correctement,
152 quelles sont les erreurs rencontrées... C'est lui qui vous dira si quelque chose
153 se passe mal en général. Si quelque chose ne fonctionne pas, il est le premier
154 fichier à consulter.
155 </p>
156
157 </body>
158 </section>
159 <section>
160 <title>suexec_log</title>
161 <body>
162
163 <pre caption="suexec_log">
164 [2005-02-11 22:33:19]: uid: (1000/vericgar) gid: (1000/1000) cmd: test.cgi
165 [2005-03-11 19:20:13]: uid: (1000/vericgar) gid: (1000/1000) cmd: test.cgi
166 [2005-03-11 19:34:47]: uid: (1000/vericgar) gid: (1000/1000) cmd: test.cgi
167 </pre>
168
169 <p>
170 Ce fichier contient une entrée pour chaque fois qu'un script est lancé en
171 utilisant CGI et suexec. Si vous n'arrivez pas à faire fonctionner un script
172 avec suexec, ce fichier est celui à consulter car il contiendra en principe une
173 ligne indiquant pourquoi il n'a pas pu lancer le script.
174 </p>
175
176 </body>
177 </section>
178 </chapter>
179
180 <chapter>
181 <title>J'ai installé un module Apache, mais il ne marche pas&nbsp;!</title>
182 <section>
183 <body>
184
185 <p>
186 Installer le module ne suffit pas, il faut également l'activer. Nous procédons
187 ainsi pour pouvoir facilement activer et désactiver les modules
188 individuellement, pour les tester un par un en cas de problème afin de trouver
189 celui qui cloche.
190 </p>
191
192 <p>
193 Lorsque vous installez un module, il devrait y avoir un message dans ce
194 genre&nbsp;:
195 </p>
196
197 <pre caption="Message post-installation (emerge)">
198 *
199 * To enable mod_layout, you need to edit your /etc/conf.d/apache2 file and
200 * add '-D LAYOUT' to APACHE2_OPTS.
201 *
202 *
203 * Configuration file installed as
204 * /etc/apache2/modules.d/15_mod_layout.conf
205 * You may want to edit it before turning the module on in /etc/conf.d/apache2
206 *
207 </pre>
208
209 <p>
210 Si vous comprenez un minimum l'anglais, il suffit de faire exactement ce qui est
211 indiqué pour activer le module. Pour les autres, il suffit de rajouter <c>-D
212 LAYOUT</c> à la variable <c>APACHE2_OPTS</c> qui se trouve dans le fichier
213 <path>/etc/conf.d/apache2</path> pour activer mod_layout.
214 </p>
215
216 <p>
217 Si vous avez loupé ce message, il existe un moyen simple de savoir ce qu'il faut
218 ajouter à <c>APACHE2_OPTS</c> dans <path>/etc/conf.d/apache2</path>&nbsp;:
219 ouvrez le fichier de configuration du module installé par l'ebuild et vous
220 verrez quelle variable est testée par <c>IfDefine</c>. Il suffit alors de la
221 déclarer dans APACHE2_OPTS. Les fichiers de configuration des modules Apache se
222 trouvent dans <path>/etc/apache2/modules.d/</path>.
223 </p>
224
225 <pre caption="Un extrait de 15_mod_layout.conf">
226 &lt;IfDefine LAYOUT&gt;
227 &lt;IfModule !mod_layout.c&gt;
228 LoadModule layout_module modules/mod_layout.so
229 &lt;/IfModule&gt;
230 &lt;/IfDefine&gt;
231 </pre>
232
233 <p>
234 Ce qui se trouve dans le bloc <c>IfDefine</c> est exécuté si vous ajoutez <c>-D
235 LAYOUT</c> au fichier <path>/etc/conf.d/apache2</path>. <c>LAYOUT</c> n'est
236 qu'un exemple.
237 </p>
238
239 <p>
240 La variable <c>APACHE2_OPTS</c> accepte plusieurs autres options qui sont
241 spécifiées dans la configuration par défaut et détaillées dans
242 <path>/etc/conf.d/apache2</path>.
243 </p>
244
245 <p>
246 La documentation concernant tous les modules de base se trouve dans la <uri
247 link="http://httpd.apache.org/docs/2.0/">documentation Apache 2.0</uri>.
248 </p>
249
250 </body>
251 </section>
252 </chapter>
253
254 <chapter>
255 <title>Apache renvoie des pages vides, Apache plante</title>
256 <section>
257 <body>
258
259 <p>
260 Cela arrive surtout lors des mises à jour car la compatibilité des binaires est
261 rompue dans APR (ce qui peut arriver pour un nombre certain de raisons). Pour
262 corriger le problème, il faut recompiler Apache et ses outils&nbsp;:
263 </p>
264
265 <pre caption="Recompiler Apache et ses outils">
266 <comment>(Faites tout ceci dans l'ordre, c'est très important !)</comment>
267
268 <comment>(D'abord, on supprime l'Apache actuel.)</comment>
269 # <i>emerge -aCv '=www-servers/apache-2*'</i>
270
271 <comment>(Ensuite, on recompile les outils.)</comment>
272 # <i>emerge -av '=dev-libs/apr-0*' '=dev-libs/apr-util-0*'</i>
273
274 <comment>(Enfin, on recompile Apache.)</comment>
275 # <i>emerge -av '=www-servers/apache-2*'</i>
276
277 <comment>(Trouvons maintenant quels paquets dépendent d'Apache.)</comment>
278 $ <i>equery depends www-servers/apache</i>
279 [ Searching for packages depending on www-servers/apache... ]
280 dev-php/phpsysinfo-2.3-r2
281 dev-php/phpsysinfo-2.1-r2
282 dev-lang/php-5.2.4_p20070914-r2
283 net-www/mod_layout-4.0.1a-r1
284 www-servers/gorg-0.5
285
286 <comment>(Et recompilons tous les modules que nous avions installés.)</comment>
287 # <i>emerge -av '=dev-lang/php-5.2.4_p20070914-r2' '=net-www/mod_layout-4.0.1.a-r1'</i>
288 </pre>
289
290 </body>
291 </section>
292 <section>
293 <title>Détecter un module bogué</title>
294 <body>
295
296 <p>
297 Si vous rencontrez toujours des problèmes après avoir suivi les instructions
298 ci-dessus, le coupable est très certainement un des modules additionnels
299 chargé par Apache.
300 </p>
301
302 <p>
303 Commencez par désactiver tous les modules additionnels et redémarrez Apache.
304 </p>
305
306 <pre caption="Désactiver les modules additionnels">
307 <comment>(Dans /etc/conf.d/apache2,)</comment>
308
309 <comment>(avant...)</comment>
310 APACHE2_OPTS="-D PHP5 -D USERDIR -D SSL"
311
312 <comment>(après.)</comment>
313 APACHE2_OPTS=""
314 </pre>
315
316 <pre caption="Redémarrer Apache">
317 # <i>/etc/init.d/apache2 stop</i>
318 <comment>(Vérifiez qu'Apache est bien arrêté.)</comment>
319 # <i>ps -A</i>
320 # <i>/etc/init.d/apache2 start</i>
321 </pre>
322
323 <note>
324 Vous devrez peut-être modifier votre configuration d'Apache si vous y avez
325 ajouté des <c>Directive</c>s fournies par un de ces modules sans faire de test
326 pour savoir si le module était bien chargé. D'une manière générale, il vaut
327 mieux placer ces directives dans des blocs qui testent la présence du module en
328 mémoire. Vous pouvez vous inspirer des fichiers .conf situés dans le répertoire
329 <path>/etc/apache2/modules.d</path> pour des exemples.
330 </note>
331
332 <p>
333 Si Apache arrête enfin de crasher ou de renvoyer des pages blanches, le problème
334 venait bien de l'un des modules qui ont été désactivés. Pour trouver duquel cela
335 provient, nous allons les réactiver un par un en redémarrant Apache à chaque
336 fois.
337 </p>
338
339 <p>
340 Une fois que vous avez trouvé quel module était responsable, une simple
341 recompilation du module en question peut résoudre le problème.
342 </p>
343
344 <p>
345 Si Apache ne fonctionne toujours pas correctement une fois que le module a été
346 réinstallé, alors <uri link="http://bugs.gentoo.org">ouvrez un bogue</uri> en
347 donnant les versions et révisions exactes du module et en précisant exactement
348 ce qui ne va pas. Cherchez d'abord si le problème n'aurait pas déjà été
349 décrit&nbsp;!
350 </p>
351
352 </body>
353 </section>
354 </chapter>
355
356 <chapter>
357 <title>Le serveur n'interprète pas le code PHP ou les scripts CGI et renvoie
358 directement le source à la place</title>
359 <section>
360 <body>
361
362 <p>
363 Il arrive qu'Apache renvoie le code PHP ou CGI au lieu d'exécuter les scripts et
364 de ne renvoyer que le résultat. Si cela arrive même lorsque le module est activé
365 dans <path>/etc/conf.d/apache2</path>, il se peut que ce soit un problème de
366 cache. Effacer le cache du navigateur web peut résoudre le problème.
367 </p>
368
369 <p>
370 Parfois le problème n'apparaît que si l'on accède au site par son adresse IP au
371 lieu de son nom ou vice-versa. Dans ce cas, il s'agit très certainement d'un
372 problème de cache.
373 </p>
374
375 </body>
376 </section>
377 </chapter>
378
379 <chapter>
380 <title>configure: error: changes in the environment can compromise the build</title>
381 <section>
382 <body>
383
384 <p>
385 Si vous obtenez cette erreur, il se peut que votre variable <c>CFLAGS</c>
386 dans <path>/etc/make.conf</path> contienne des espaces en trop. Ceci est simple
387 à corriger&nbsp;:
388 </p>
389
390 <pre caption="Exemple de correction pour /etc/make.conf">
391 <comment>(Avant...)</comment>
392 CFLAGS="-O2 -mcpu=pentium3 -march=pentium3 -pipe"
393
394 <comment>(après. Notez la suppression de l'espace.)</comment>
395 CFLAGS="-O2 -mcpu=pentium3 -march=pentium3 -pipe"
396 </pre>
397
398 </body>
399 </section>
400 </chapter>
401
402 <chapter>
403 <title>Address already in use: make_sock: could not bind to address
404 0.0.0.0:443</title>
405 <section>
406 <body>
407
408 <p>
409 Cette erreur apparaît lors du démarrage et provient du fait qu'il y a plusieurs
410 directives <c>Listen</c> incompatibles dans la configuration du serveur. Pour
411 résoudre ce problème, cherchez toutes les directives <c>Listen</c> et résolvez
412 le problème.
413 </p>
414
415 <pre caption="Trouver toutes les directives Listen">
416 <comment>(Placez-vous dans le répertoire de configuration d'Apache...)</comment>
417 # <i>cd /etc/apache2/</i>
418
419 <comment>(et listez les directives Listen.)</comment>
420 # <i>grep Listen httpd.conf vhosts.d/*.conf modules.d/*.conf</i>
421 </pre>
422
423 <p>
424 Il s'agit maintenant de repérer les conflits qu'il pourrait y avoir au niveau
425 des ports ouverts par Apache. Par exemple, s'il y a une ligne <c>Listen 80</c>
426 dans <path>httpd.conf</path> et une ligne <c>Listen 10.0.0.15:80</c> dans un
427 autre fichier, alors Apache ne pourra pas démarrer. Dans ce cas, Apache ouvrira
428 le port 80 sur toutes les adresses IP que le serveur possède et essaiera ensuite
429 d'ouvrir le port 80 sur l'adresse IP 10.0.0.15, ce qui n'est pas possible
430 puisque ce port est déjà ouvert.
431 </p>
432
433 <p>
434 La configuration recommandée est de n'avoir qu'une seule ligne <c>Listen 80</c>
435 (c'est la valeur par défaut de <c>httpd.conf</c>) afin d'ouvrir par défaut le
436 port HTTP standard sur toutes les adresses IP, puis de rajouter une ligne
437 <c>Listen</c> supplémentaire pour chaque <c>VirtualHost</c> SSL en spécifiant
438 l'adresse IP (par exemple&nbsp;: <c>Listen 10.0.0.15:443</c>).
439 </p>
440
441 </body>
442 </section>
443 </chapter>
444
445 <chapter>
446 <title>Après la mise à jour vers apache-2.0.54-r13, le vhost par défaut (SSL ou
447 non-SSL) ne fonctionne plus</title>
448 <section>
449 <body>
450
451 <p>
452 À partir de la version apache-2.0.54-r13, deux nouvelles directives ont été
453 ajoutées pour fixer le <uri
454 link="http://bugs.gentoo.org/show_bug.cgi?id=100624">bogue 100624</uri>.
455 </p>
456
457 <p>
458 Les nouvelles directives en question sont&nbsp;: <c>-D DEFAULT_VHOST</c> pour
459 activer le vhost par défaut et <c>-D SSL_DEFAULT_VHOST</c> pour activer le vhost
460 SSL par défaut. Ces deux directives doivent être ajoutées à la variable
461 <c>APACHE2_OPTS</c> du fichier <path>/etc/conf.d/apache2</path> pour être
462 activées (ce qui rétablit l'ancien comportement d'Apache).
463 </p>
464
465 </body>
466 </section>
467 </chapter>
468
469 <chapter id="getting-help">
470 <title>À l'aide...</title>
471 <section>
472 <body>
473
474 <p>
475 Si aucune de ces astuces n'a pu résoudre votre problème ou si vous avez d'autres
476 questions, passez nous voir sur IRC dans le canal <path>#gentoo-apache</path>
477 (on y parle anglais) sur le serveur <path>irc.freenode.net</path>. Vous pouvez
478 aussi remplir un ticket de bogue sur le <uri
479 link="http://bugs.gentoo.org">Bugzilla de Gentoo</uri>.
480 </p>
481
482 </body>
483 </section>
484 </chapter>
485
486 </guide>