3.5.1. Apache

Vous avez deux options pour exécuter Bugzilla sur Apache : mod_cgi (par défaut) et mod_perl. mod_perl est plus rapide mais consomme plus de ressources. Vous ne devriez envisager l'utilisation de mod_perl que si votre installation de Bugzilla sera très firtement utilisée.

Ces instructions nécessitent l'édition du fichier de configuration d'Apache :

  • Fedora/Red Hat: /etc/httpd/conf/httpd.conf
  • Debian/Ubuntu: /etc/apache2/apache2.conf
  • Mac OS X: /etc/apache2/httpd.conf

Vous pouvez aussi sous Debian ou Ubuntu, mettre le code indiqué ci-dessous dans un fichier séparé dans le répertoire /etc/apache2/sites-enabled/.

Dans ces instructions, quand le démarrage d'Apache est demandé, la commande à exécuter est :

sudo apachectl start

(ou l'exécuter en tant que root si votre système n'utilise pas sudo).

3.5.1.1. Sécuriser Apache

Quand des systèmes externes interagissent avec Bugzilla par le biais de webservices (REST/XMLRPC/JSONRPC), ils incluent les identifiants de connexions de l'utilisateur dans l'URL (dans la « query string »). Par conséquent, pour éviter de stocker les mots de passe en clair dans les journaux du serveurs, nous recommandons de configurer Apache pour ne pas inclure la « query string » dans ses fichiers journaux.

  1. Éditer le fichier de configuration d'Apache (voir plus haut).

  2. Rechercher la ligne suivante qui définit le format de journalisation pour vhost_combined:

    LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
    
  3. Remplacer %r par %m %U.

  4. Redémarrer Apache.

3.5.1.2. Apache with mod_cgi

Pour configurer votre serveur Web Apache pour fonctionner avec Bugzilla en utilisant mod_cgi, suivez les instructions suivantes :

  1. Éditer le fichier de configuration d'Apache (voir plus haut).
  2. Créer une directive <Directory> s'appliquant à l'emplacement de votre installation Bugzilla. dans cette example, Bugzilla a été installé dans /var/www/html/bugzilla. Sous Mac OS X, utiliser /Library/WebServer/Documents/bugzilla.
<Directory /var/www/html/bugzilla>
  AddHandler cgi-script .cgi
  Options +ExecCGI +FollowSymLinks
  DirectoryIndex index.cgi index.html
  AllowOverride All
</Directory>

Ces instructions autorisent Apache à exécuter les fichiers .cgi se trouvant dans le répertoire bugzilla; indiquent au serveur de chercher un fichier appelé index.cgi, ou s'il n'est pas trouvé, index.html, si quelqu'un saisit seulement le nom du répertoire dans le navigateur ; et autorisent les fichiers .htaccess de Bugzilla à outrepasser quelques permissions globales.

Sur certaines distributions Linux, vous devrez activer le module Apache CGI. Pour Debian/Ubuntu, ceci est réalisé avec la commande :

sudo a2enmod cgi

Si le serveur Web renvoie le code Perl comme du texte au lieu de l'exécuter c'est que ce module n'est pas activé.

3.5.1.3. Apache with mod_perl

Une certaine configuration est requise pour faire fonctionner Bugzilla avec Apache et mod_perl.

Note

Nous ne savons pas si quelqu'un a déjà essayé mod_perl sur Mac OS X.

  1. Éditer le fichier de configuration d'Apache (voir plus haut).

  2. Ajoutez les informations suivantes en substituant où cela est approprié vos propres chemins d'accès locaux.

    PerlSwitches -w -T
    PerlConfigRequire /var/www/html/bugzilla/mod_perl.pl
    

    Note

    Ceci doit être utilisé au lieu du bloc <Directory> indiqué plus haut. Ceci doit aussi être placé au-dessus de toute autre directive mod_perl dans le fichier httpd.conf et doit être spécifié dans l'ordre indiqué ci-dessous.

    Avertissement

    Vous devez aussi vous assurer que vous avez désactivé la gestion de KeepAlive dans votre installation Apache en utilisant Bugzilla avec mod_perl ou vous pourriez rencontrer des problèmes de performance.

Au redémarrage d'Apache, Bugzilla devrait alors fonctionner en environnement mod_perl. Veuillez vous assurer d'avoir exécuté checksetup.pl pour définir les permissions avant de redémarrer Apache.

Veuillez garder à l'esprit les points suivants en utilisant Bugzilla avec mod_perl :

  • La gestion mod_perl dans Bugzilla peut consommer ÉNORMÉMENT de RAM. Vous pouvez compter facilement 30 Mo par processus httpd enfant. En gros, vous avez seulement besoin de beaucoup de RAM. Plus vous en aurez, mieux ce sera. mod_perl utilise basiquement la mémoire pour augmenter la vitesse de traitement. Il est recommandé d'avoir au moins 2 Go de RAM pour exécuter Bugzilla sous mod_perl.
  • Sous mod_perl, vous devez redémarrer Apache si vous faites un chagement manuel sur tout fichier de Bugzilla. vous ne pouvez pas seulement recharger -- vous devez en fait redémarrer le serveur (être sûr qu'il soit arrêté puis démarré à nouveau) Vous pouvez modifier le fichier localconfig et le fichier des paramètres, si vous le voulez, car ceux-ci sont lus chaque fois que vous chargez une page.
  • Vous devez exécuter Prefork MPM de Apache (c'est l'option par défaut). Le Worker MPM peut ne pas fonctionner -- nous n'avons pas testé Bugzilla sous mod_perl avec la gestion des threads. (Et en fait, nous sommes pratiquement sûrs que cela ne fonctionnera pas.)
  • Bugzilla s'attend généralement à être la seule application fonctionnant sous mod_perl sur tout le serveur. Il peut ne pas fonctionner s'il y a d'autres applications fonctionnant aussi sous mod_perl. Il s'efforcera de cohabiter avec d'autres applications sous mod_perl, mais il pourra y avoir des conflits.
  • Il est recommandé de n'avoir qu'une seule instance de Bugzilla fonctionnant sous mod_perl sur votre serveur. Bugzilla n'a pas été testé avec plus d'une instance.

Cette documentation contient très probablement des bogues ; si vous en découvrez, veuillez les signaler ici.