<?xml version="1.0" encoding="UTF-8"?> <!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"> --> <!-- $Id: troubleshooting.xml,v 1.1.1.1.2.2 2005/11/02 22:09:23 seyman Exp $ --> <appendix id="troubleshooting"> <title>Résolution des problèmes</title> <para> Cette section propose des solutions aux problèmes d'installation de Bugzilla. Si aucune des têtes de chapitres ne semble correspondre à votre problème, lisez les conseils généraux. </para> <section id="general-advice"> <title>Conseils généraux</title> <para>Normalement, si <filename>checksetup.pl</filename> ne parvient pas à s'exécuter complètement, il vous explique ce qui ne va pas et comment régler le problème. Si vous n'arrivez pas à vous en sortir, ou si le logiciel fait preuve de mutisme, publiez ces erreurs sur le <ulink url="news://news.mozilla.org/netscape.public.mozilla.webtools">site de diffusion netscape.public.mozilla.webtools</ulink> </para> <para>Si vous avez franchi avec succès toutes les étapes de <xref linkend="installation"/> (Installation) et <xref linkend="configuration"/> (Configuration) mais que l'accès à l'URL de Bugzilla ne fonctionne pas, la première chose à vérifier est le journal d'erreur de votre serveur Web. Dans le cas d'Apache, il se situe souvent dans <filename>/etc/logs/httpd/error_log</filename>. Les messages d'erreur que vous y trouverez seront peut-être suffisamment explicites pour vous permettre de diagnostiquer et corriger le problème. Si ce n'est pas le cas, regardez ce qui est dit ci-dessous sur certaines erreurs fréquemment rencontrées. Si cela ne vous aide toujours pas, publiez ces erreurs sur le groupe de diffusion. </para> </section> <section> <title>Le serveur Web Apache ne m'ouvre pas les pages de Bugzilla</title> <para>Après avoir lancé <command>checksetup.pl</command> deux fois, lancez <command>testserver.pl http://votre_site.votredomaine/votre_url</command> afin de confirmer que votre serveur Web est correctement configuré pour Bugzilla. </para> <programlisting> <prompt>bash$</prompt> ./testserver.pl http://landfill.bugzilla.org/bugzilla-tip TEST-OK Webserver is running under group id in $webservergroup. TEST-OK Got ant picture. TEST-OK Webserver is executing CGIs. TEST-OK Webserver is preventing fetch of http://landfill.bugzilla.org/bugzilla-tip/localconfig. </programlisting> </section> <section> <title>J'ai installé un module Perl mais <filename>checksetup.pl</filename> affirme qu'il n'est pas installé !</title> <para>Cela peut avoir l'une des deux causes suivantes :</para> <orderedlist> <listitem> <para>Vous avez deux versions de Perl sur votre machine. Vous installez les modules sous l'une, alors que Bugzilla en utilise une autre. Exécutez à nouveau les commandes CPAN (ou recompilez manuellement) en donnant le chemin complet vers Perl depuis le répertoire de <filename>checksetup.pl</filename>. Ainsi vous serez sûr que les modules sont installés au bon endroit. </para> </listitem> <listitem> <para>Les permissions de répertoires des bibliothèques ne sont pas paramétrées correctement. Ils doivent, à tout le moins, être lisibles par l'utilisateur ou le groupe serveur Web. Il est conseillé qu'ils soient accessibles à tous. </para> </listitem> </orderedlist> </section> <section> <title>Bundle::Bugzilla met à niveau Perl à la version 5.6.1</title> <para>Exécutez la commande <command>perl -MCPAN -e 'install CPAN'</command> pour voir et continuez. </para> <para>Certaines versions plus anciennes des outils CPAN étaient un peu naïves quand elles mettaient à jour des modules Perl. Quand des modules entraient dans la distribution Perl 5.6.1, CPAN pensait que le meilleur moyen de les garder à jour était de récupérer la distribution Perl elle-même et de la reconstruire. Inutile de vous dire que cela a causé un mal de tête à presque tout le monde. Une mise à niveau vers la nouvelle version de CPAN grâce à la commande ci-dessus devrait régler le problème. </para> </section> <section> <title> <quote>La préparation de DBD::Sponge::db a échoué</quote> [DBD::Sponge::db prepare failed] </title> <para> Le message suivant peut apparaître à cause d'un bogue dans DBD::mysql (sur lequel l'équipe Bugzilla n'a aucun contrôle) : </para> <programlisting><![CDATA[ DBD::Sponge::db prepare failed: Cannot determine NUM_OF_FIELDS at D:/Perl/site/lib/DBD/mysql.pm line 248. SV = NULL(0x0) at 0x20fc444 REFCNT = 1 FLAGS = (PADBUSY,PADMY) ]]></programlisting> <para> Pour régler le problème, éditez le fichier <filename><chemin-vers-perl>/lib/DBD/sponge.pm</filename> dans votre répertoire d'installation de Perl et remplacez </para> <programlisting><![CDATA[ my $numFields; if ($attribs->{'NUM_OF_FIELDS'}) { $numFields = $attribs->{'NUM_OF_FIELDS'}; } elsif ($attribs->{'NAME'}) { $numFields = @{$attribs->{NAME}}; ]]></programlisting> <para>par</para> <programlisting><![CDATA[ my $numFields; if ($attribs->{'NUM_OF_FIELDS'}) { $numFields = $attribs->{'NUM_OF_FIELDS'}; } elsif ($attribs->{'NAMES'}) { $numFields = @{$attribs->{NAMES}}; ]]></programlisting> <para>(notez le S ajouté à NAME.)</para> </section> <section id="paranoid-security"> <title> <quote>Impossible d'exécuter chdir...</quote> [cannot chdir(/var/spool/mqueue)]</title> <para> Si vous installez Bugzilla sur SuSE Linux ou sur une autre distribution avec des options de sécurité <quote>paranoïaques</quote>, le script checksetup.pl peut se bloquer avec l'erreur suivante : </para> <programlisting><![CDATA[cannot chdir(/var/spool/mqueue): Permission denied ]]></programlisting> <para> Cette erreur se produit parce que votre répertoire <filename>/var/spool/mqueue</filename> a des droits insuffisants : <computeroutput>drwx------</computeroutput>. Tapez <command>chmod 755 <filename>/var/spool/mqueue</filename></command> sous root pour régler le problème. Cela permettra à n'importe quel processus s'exécutant sur votre machine de <emphasis>lire</emphasis> le répertoire <filename>/var/spool/mqueue</filename>. </para> </section> <section id="trouble-filetemp"> <title> <quote>Votre fournisseur n'a pas défini...</quote> [Your vendor has not defined Fcntl macro O_NOINHERIT] </title> <para> Cette erreur est provoquée par un bogue dans la version de <productname>File::Temp</productname> distribuée avec Perl 5.6.0. De nombreuses variantes légèrement différentes de cette erreur ont été signalées : </para> <programlisting> Your vendor has not defined Fcntl macro O_NOINHERIT, used at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 208. Your vendor has not defined Fcntl macro O_EXLOCK, used at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 210. Your vendor has not defined Fcntl macro O_TEMPORARY, used at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 233. </programlisting> <para> Beaucoup d'utilisateurs ont signalé qu'une mise à niveau vers la version 5.6.1 et suivantes a réglé leur problème. Une solution moins définitive consiste à appliquer le correctif suivant, également disponible sous forme d'un <ulink url="&chemin-des-outils;filetemp.patch">correctif</ulink>. </para> <programlisting><![CDATA[ --- File/Temp.pm.orig Thu Feb 6 16:26:00 2003 +++ File/Temp.pm Thu Feb 6 16:26:23 2003 @@ -205,6 +205,7 @@ # eg CGI::Carp local $SIG{__DIE__} = sub {}; local $SIG{__WARN__} = sub {}; + local *CORE::GLOBAL::die = sub {}; $bit = &$func(); 1; }; @@ -226,6 +227,7 @@ # eg CGI::Carp local $SIG{__DIE__} = sub {}; local $SIG{__WARN__} = sub {}; + local *CORE::GLOBAL::die = sub {}; $bit = &$func(); 1; }; ]]></programlisting> </section> <section id="trbl-relogin-everyone"> <title>On est constamment obligés de se reconnecter</title> <para> La cause la plus probable est que le paramètre <quote>cookiepath</quote> n'est pas correctement réglé dans la configuration de Bugzilla. Ça peut s'arranger (si vous êtes administrateur Bugzilla) sur la page editparams.cgi par le web. </para> <para> La valeur du paramètre cookiepath doit être précisément le répertoire contenant votre installation de Bugzilla, <emphasis>telle que la voit le navigateur Internet d'un utilisateur</emphasis>. Les slash de début et de fin sont obligatoires. Vous pouvez également paramétrer le cookiepath vers n'importe quel répertoire parent du répertoire Bugzilla (comme <quote>/</quote>, le répertoire racine). Mais vous ne pouvez pas indiquer un chemin qui ne correspond pas au moins partiellement, car cela ne marchera pas. Ce que l'on fait là, en fait, c'est de limiter l'action du navigateur utilisateur au renvoi de cookies uniquement dans ce répertoire. </para> <para> Comment savoir si vous avez besoin de votre répertoire Bugzilla particulier ou du site complet ? </para> <para> Si vous n'avez qu'un seul Bugzilla installé sur votre serveur, que cela ne vous dérange pas d'avoir d'autres applications sur le même serveur et qu'il soit capable de voir les cookies (ça pourrait être fait exprès si vous avez d'autres outils sur votre site qui partagent l'authentification avec Bugzilla), vous n'aurez qu'a régler le cookiepath à <quote>/</quote>, ou à un répertoire suffisamment élevé dans l'arborescence afin que toutes les applications concernées puissent voir les cookies. </para> <example id="trbl-relogin-everyone-share"> <title>Exemples de paires urlbase/cookiepath pour le partage des cookies d'ouverture de session</title> <blockquote> <literallayout> urlbase : <ulink url="http://bugzilla.mozilla.org/"/> cookiepath : / urlbase : <ulink url="http://tools.mysite.tld/bugzilla/"/> mais vous avez http://tools.mysite.tld/someotherapp/ partageant l'authentification avec Bugzilla cookiepath : / </literallayout> </blockquote> </example> <para>D'un autre côté, si vous avez plus d'une version de Bugzilla installée sur votre serveur (quelques utilisateurs le font; nous le faisons pour landfill), il faut que le cookiepath soit suffisamment restreint afin que les différents Bugzilla ne confondent pas leurs cookies avec ceux d'un autre. </para> <example id="trbl-relogin-everyone-restrict"> <title>Exemples de paires urlbase/cookiepath pour la restriction du cookie d'ouverture de session</title> <blockquote> <literallayout> urlbase : <ulink url="http://landfill.bugzilla.org/bugzilla-tip/"/> cookiepath : /bugzilla-tip/ urlbase : <ulink url="http://landfill.bugzilla.org/bugzilla-2.16-branch/"/> cookiepath : /bugzilla-2.16-branch/ </literallayout> </blockquote> </example> <para>Si vous aviez paramétré votre cookiepath à <quote>/</quote> auparavant et que vous devez le régler à un niveau plus restrictif (c'est à dire <quote>/bugzilla/</quote>), vous pouvez effectuer cela de manière sûre sans demander aux utilisateurs de supprimer dans leur navigateur Internet leurs cookies relatifs à Bugzilla (ceci est vrai depuis Bugzilla 2.18 et Bugzilla 2.16.5). </para> </section> <section> <title>Certains utilisateurs sont constamment obligés de se reconnecter</title> <para>Tout d'abord, assurez vous que les cookies sont activés dans le navigateur de l'utilisateur. </para> <para>Si cela ne règle pas le problème, il se peut que le fournisseur d'accès Internet de l'utilisateur implémente un serveur proxy tournant. Cela provoque un changement périodique de l'adresse IP réelle de l'utilisateur (l'adresse d'où provient l'utilisateur du point de vue du serveur Bugzilla). Puisque les cookies de Bugzilla sont liés à une adresse IP spécifique, chaque fois que cette adresse réelle change, l'utilisateur devra se connecter à nouveau. </para> <para>Si vous utilisez la version 2.18, il y a un paramètre appelé <quote>loginnetmask</quote> que vous pouvez utiliser afin de régler le nombre de bits que nécessite l'adresse IP de l'utilisateur lors de l'authentification des cookies. Si vous indiquez un nombre inférieur à 32, une case à cocher sera mise à disposition de l'utilisateur sur l'écran de connexion pour <quote>Restreindre cet accès à mon adresse IP</quote> [Restrict this login to my IP address], case cochée par défaut. Si l'utilisateur laisse la case cochée, Bugzilla se comportera de la même manière qu'auparavant, exigeant que l'adresse IP corresponde exactement afin de rester connecté. Si l'utilisateur décoche la case, alors seule la partie gauche de son adresse IP (à hauteur du nombre de bits que vous avez spécifié dans le paramètre) devra correspondre pour rester connecté. </para> </section> <section id="trbl-index"> <title><filename>index.cgi</filename> ne s'affiche pas à moins qu'il ne soit spécifié dans l'URL</title> <para> Il vous faut probablement paramétrer votre serveur Web de sorte qu'il considère la page index.cgi comme une page d'index. </para> <para> Si vous utilisez Apache, vous pouvez faire ceci en ajoutant <filename>index.cgi</filename> à la fin de la ligne <computeroutput>DirectoryIndex</computeroutput> comme indiqué dans <xref linkend="http-apache"/>. </para> </section> </appendix> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-always-quote-attributes:t sgml-auto-insert-required-elements:t sgml-balanced-tag-edit:t sgml-exposed-tags:nil sgml-general-insert-case:lower sgml-indent-data:t sgml-indent-step:2 sgml-local-catalogs:nil sgml-local-ecat-files:nil sgml-minimize-attributes:nil sgml-namecase-general:t sgml-omittag:t sgml-parent-document:("Bugzilla-Guide.xml" "book" "chapter") sgml-shorttag:t sgml-tag-region-if-active:t End: -->