3.2. Linux

Beaucoup de distributions GNU Linux/BSD incluent Bugzilla et ses dépendances dans leur système de gestion de paquets natif. Installer Bugzilla avec un accès root sur tout système GNU Linux/BSD devrait être aussi facile que de trouver le paquet Bugzilla dans l'application de gestion de paquet et de l'installer en utilisant la syntaxe de commande normale. Il peut y avoir toutefois un peu de paramétrage supplémentaire à faire.

Si vous installez votre machine à partir de zéro, Démarrage rapide (Ubuntu Linux 14.04) contient probablement les meilleures instructions dans votre cas.

3.2.1. Installer les paquets

Utilisez les gestionnaires de paquets de votre distribution pour installer Perl, votre moteur de base de données préféré (MySQL dans le doute) et un serveur Web (Apache dans le doute). Certaines distributions proposent même un paquet Bugzilla, cependant, celui-ci peut-être un peu vieux.

Les commandes ci-dessous installeront ceux-ci et d'autres paquets nécessaires au fonctionnement de Bugzilla. Si un paquet ne s'installe pas ou si le nom n'est pas trouvé, retirez-le de la liste et relancez la commande. Si vous utilisez un autre moteur de base de données ou un autre serveur Web, substituez les noms de paquets avec les libellés appropriés.

3.2.1.1. Fedora et Red Hat

Les commandes suivantes installeront le paquet Bugzilla fourni par Red Hat :

yum install bugzilla httpd mysql-server

Ensuite, vous pourrez alors consulter configuration de la base de données. Il peut être utile de savoir que Fedora stockent les fichiers Bugzilla dans /usr/share/bugzilla. C'est donc dans ce répertoire qu'il faudra exécuter checksetup.pl.

Si vous voulez installer une version de Bugzilla à partir du projet Bugzilla, vous aurez alors besoin des paquets suivants :

yum install httpd mysql-server mod_perl mod_perl-devel httpd-devel gd-devel mysql-devel graphviz patchutils gcc 'perl(Apache2::SizeLimit)' 'perl(Authen::Radius)' 'perl(Authen::SASL)' 'perl(Cache::Memcached)' 'perl(CGI)' 'perl(Chart::Lines)' 'perl(Daemon::Generic)' 'perl(Date::Format)' 'perl(DateTime)' 'perl(DateTime::TimeZone)' 'perl(DBI)' 'perl(Digest::SHA)' 'perl(Email::MIME)' 'perl(Email::Reply)' 'perl(Email::Sender)' 'perl(Encode)' 'perl(Encode::Detect)' 'perl(File::MimeInfo::Magic)' 'perl(File::Slurp)' 'perl(GD)' 'perl(GD::Graph)' 'perl(GD::Text)' 'perl(HTML::FormatText::WithLinks)' 'perl(HTML::Parser)' 'perl(HTML::Scrubber)' 'perl(IO::Scalar)' 'perl(JSON::RPC)' 'perl(JSON::XS)' 'perl(List::MoreUtils)' 'perl(LWP::UserAgent)' 'perl(Math::Random::ISAAC)' 'perl(MIME::Parser)' 'perl(mod_perl2)' 'perl(Net::LDAP)' 'perl(Net::SMTP::SSL)' 'perl(PatchReader)' 'perl(SOAP::Lite)' 'perl(Template)' 'perl(Template::Plugin::GD::Image)' 'perl(Test::Taint)' 'perl(TheSchwartz)' 'perl(URI)' 'perl(XMLRPC::Lite)' 'perl(XML::Twig)'

Si vous utilisez RHEL6, vous devrez activer le canal RHEL Server Optional dans RHN pour obtenir certains paquets.

Si vous projetez d'utiliser un moteur de base de données autre que MySQL, vous devrez alors aussi installer les paquets appropriés.

3.2.1.2. Ubuntu et Debian

apt-get install git nano

apt-get install apache2 mysql-server libappconfig-perl libdate-calc-perl libtemplate-perl libmime-perl build-essential libdatetime-timezone-perl libdatetime-perl libemail-sender-perl libemail-mime-perl libemail-mime-modifier-perl libdbi-perl libdbd-mysql-perl libcgi-pm-perl libmath-random-isaac-perl libmath-random-isaac-xs-perl apache2-mpm-prefork libapache2-mod-perl2 libapache2-mod-perl2-dev libchart-perl libxml-perl libxml-twig-perl perlmagick libgd-graph-perl libtemplate-plugin-gd-perl libsoap-lite-perl libhtml-scrubber-perl libjson-rpc-perl libdaemon-generic-perl libtheschwartz-perl libtest-taint-perl libauthen-radius-perl libfile-slurp-perl libencode-detect-perl libmodule-build-perl libnet-ldap-perl libauthen-sasl-perl libtemplate-perl-doc libfile-mimeinfo-perl libhtml-formattext-withlinks-perl libgd-dev libmysqlclient-dev lynx-cur graphviz python-sphinx

Si vous projetez d'utiliser un moteur de base de données autre que MySQL, vous devrez alors aussi installer les paquets appropriés.

3.2.1.3. Gentoo

emerge -av bugzilla

installera Bugzilla et toutes ses dépendances. Si vous n'avez pas le flag vhosts USE activé, Bugzilla sera installé dans /var/www/localhost/bugzilla.

Vous pourrez ensuite vous rendre dans Configuration de la base de données.

3.2.2. Perl

Testez la version de Perl installée avec la commande suivante :

$ perl -v

Bugzilla nécessite au minimum la version Perl 5.10.1.

3.2.3. Bugzilla

Le meilleur moyen d'obtenir Bugzilla est de le faire par git :

git clone --branch release-X.X-stable https://github.com/bugzilla/bugzilla

Exécutez la commande ci-dessus dans votre répertoire home, en remplaçant X.X avec les deux nombres de la version stable de Bugzilla que vous désirez - par ex. 4.4.

Si ce n'est pas possible, vous pouvez télécharger l'archive de Bugzilla <http://www.bugzilla.org/download/>`_.

Placez Bugzilla dans le répertoire approprié, accessible par l'utilisateur du serveur Web (probablement apache ou www-data). Un bon emplacement est soit directement à la racine du serveur Web (souvent /var/www/html) soit dans /usr/local, avec un lien symbolique vers la racine du serveur Web ou un alias dans la configuration du serveur Web.

Avertissement

La distribution Bugzilla par défaut n'est PAS conçue pour être placée dans le répertoire cgi-bin. Ceci inclut également tout répertoire configuré en utilisant la directive ScriptAlias d'Apache.

3.2.4. Perl Modules

Bugzilla nécessite de nombreux modules Perl. Vous pouvez les installer globalement en utilisant le gestionnaire de paquets de votre distribution, ou en installant des copies utilisées seulement pour Bugzilla. Parfois, Bugzilla peut nécessiter une version d'un module Perl plus récent que celui fourni par votre distribution, auquel cas, vous devrez installer une copie de cette version utilisée par Bugzilla seulement.

Vous devrez alors être root, par ex. en utilisant la commande su. Vous devrez rester root jusqu'à la fin de l'installation. Ceci peut être évité dans certaines circonstances si vous êtes membre du groupe du serveur Web, mais être root est plus facile et fonctionne toujours.

Pour vérifier si vous avez tous les modules nécessaires, exécutez la commande :

./checksetup.pl --check-modules

Vous pouvez lancer cette commande autant de fois que nécessaire.

Si vous n'avez pas déjà tous les modules nécessaires, vous pouvez les installer en utilisant le gestionnaire de paquets de votre distribution. Vous pouvez alternativement installer tous les modules manquants localement (c-à-d. seulement pour Bugzilla) comme ceci :

./install-module.pl --all

Vous pouvez également indiquer un nom de module individuel :

./install-module.pl <modulename>

3.2.5. Serveur Web

Tout serveur Web en mesure d'exécuter des scripts CGI peut être utilisé. Nous avons des instructions spécifiques pour les suivants :

3.2.6. Moteur de base de données

Bugzilla peut fonctionner avec les moteurs de base de données MySQL, PostgreSQL, Oracle et SQLite. Vous n'avez besoin que d'un seul de ces moteurs pour utiliser Bugzilla. MySQL est le plus couramment utilisé. SQLite est adapté pour des installations de test car il ne nécessite pas de configuration. Configurez votre serveur en suivant les instructions ci-dessous :

3.2.7. localconfig

Vous devez maintenant exécuter checksetup.pl à nouveau, cette fois sans l'argument --check-modules.

./checksetup.pl

Cette fois, checksetup.pl devrait vous dire que tous les modules appropriés sont installés et affichera un message à ce sujet, et générera un fichier de sortie appelé localconfig. Ce fichier contient les paramètres par défaut pour un grand nombre de paramètres de Bugzilla.

Ouvrez ce fichier dans votre éditeur. Les deux seules valeurs que vous avez besoin de changer sont $db_driver et $db_pass, respectivement le type de base de données et le mot de passe pour l'utilisateur qui créera pour vous la base de données. Choisissez un mot de passe compliqué (pour la simplicité, il ne devrait pas contenir d'apostrophe) et saisissez-le dans le fichier. $db_driver peut être mysql, Pg (PostgreSQL), oracle ou SQLite.

Définissez la valeur de $webservergroup avec le nom groupe avec lequel votre serveur Web s'exécute.

  • Fedora/Red Hat : apache
  • Debian/Ubuntu : www-data
  • Mac OS X : _www
  • Windows : ignorez ce paramètre car il n'est pas utile pour ce système d'exploitation

Les autres options dans le fichier localconfig sont documentées avec leurs commentaires. Si vous avez une configuration de base de données non standard, vous aurez peut-être besoin de modifier d'autres paramètres $db_*.

Note

Sous Oracle, $db_name devrait en fait être le nom du SID de votre base de données (par ex. XE si vous utilisez Oracle XE).

3.2.8. checksetup.pl

Ensuite, exécutez checksetup.pl une nouvelle fois :

./checksetup.pl

Il confirmera à nouveau que tous les modules sont présents et remarquera la modification du fichier localconfig, en supposant que vous l'avez modifié à votre convenance. Il compile ensuite les modèles de l'interface utilisateur, se connecte à la base de données en utilisant l'utilisateur bugs que vous avez créé et le mot de passe que vous avez défini et crée enfin la base de données bugs et les tables à l'intérieur.

Après cela, il demande des détails sur le compte administrateur. Bugzilla peut avoir plusieurs administrateurs --vous pouvez en créer d'autres plus tard-- mais il en a besoin d'un pour démarrer. Saisissez l'adresse électronique d'un administrateur, son nom complet, et un mot de passe approprié pour Bugzilla.

checksetup.pl se terminera alors. Vous pouvez relancer checksetup.pl à tout moment si vous le souhaitez.

3.2.9. Bravo

Votre installation Bugzilla devrait à présent fonctionner. Vérifiez-le en exécutant la commande suivante :

./testserver.pl http://<your-bugzilla-server>/

Si elle passe sans erreur, accédez à http://<your-bugzilla-server>/ dans votre navigateur --vous devriez alors voir la page d'accueil de Bugzilla. Bien sûr, si vous avez installé Bugzilla dans un sous-répertoire, assurez-vous que celui-ci figure dans URL.

Ensuite, consultez Configuration post-installation essentielle.


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