5. Notes d'installation sous UNIX (non administrateur)

5.1. Introduction

Si vous exécutez un *NIX OS avec un compte limité (non administrateur), soit en raison d'un manque d'accès (les hôtes web, par exemple) ou pour des raisons de sécurité, cette partie vous indiquera comment installer Bugzilla sur une telle installation. Il est recommandé que vous lisiez d'abord la Section 1, « Installation » pour avoir une idée des étapes d'installation nécessaires (ces notes renverront à des étapes de ce guide).

5.2. MySQL

Il se peut que MySQL soit installé en tant qu'administrateur. Si vous êtes en train d'installer un compte avec un hôte web, un compte MySQL devra être créé pour vous. À partir de là, vous pouvez créer le compte bugs ou utiliser le compte qui vous est fourni.

[Avertissement]Avertissement

Vous pourriez avoir des problèmes en essayant de régler les permissions GRANT à la base de données. Si vous utilisez un hôte web, il y a de grandes chances que vous ayez une base de données séparée qui est déjà verrouillée (ou une grosse base de données sans accès ou avec des accès limités aux autres zones) mais vous pouvez demander à votre administrateur système comment les réglages de sécurité ont été fixés, et/ou qu'il exécute la commande GRANT pour vous.

En plus, vous ne pourrez sans doute pas changer le mot de passe administrateur de MySQL (pour des raisons évidentes) alors sautez cette étape.

5.2.1. Exécuter MySQL comme non administrateur

5.2.1.1. La méthode de configuration personnalisée

Créez un fichier .my.cnf dans votre répertoire home (/home/foo est utilisé dans cet exemple) comme suit...

[mysqld]
datadir=/home/foo/mymysql
socket=/home/foo/mymysql/thesock
port=8081

[mysql]
socket=/home/foo/mymysql/thesock
port=8081

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/home/foo/mymysql/the.log
pid-file=/home/foo/mymysql/the.pid
5.2.1.2. La méthode de construction personnalisée

Vous pouvez installer MySQL en tant que non « root », si vous le souhaitez vraiment. Construisez le avec /home/foo/mysql comme PREFIX ou utilisez des exécutables pré installés, en spécifiant que vous voulez mettre tous les fichiers de données dans /home/foo/mysql/data. S'il y un autre serveur MySQL qui s'exécute sur le système dont vous n'êtes pas le propriétaire, utilisez l'option -P pour indiquer un port TCP qui n'est pas utilisé.

5.2.1.3. Démarrage du serveur

Après que votre programme mysqld soit construit et que les éventuels fichiers .my.cnf soient en place, vous devez initialiser la base de données (UNE FOIS).

bash$ mysql_install_db

Ensuite démarrez le démon avec

bash$ safe_mysql &

Après le premier démarrage de mysqld, connectez vous en tant qu'administrateur et accordez les droits GRANT aux autres utilisateurs. (Encore une fois, le compte administrateur MySQL n'a rien à voir avec le compte administrateur *NIX.)

[Note]Note

Vous devrez démarrer les démons vous-même. Vous pouvez soit demander à votre administrateur système de les ajouter au fichier de démarrage, soit ajouter une entrée crontab qui exécute un script qui fera une vérification de ces démons et les redémarrera si besoin est.

[Avertissement]Avertissement

N'exécutez PAS de démons ou d'autres programmes sur un serveur avant de consulter d'abord l'administrateur système ! Les démons consomment des ressources système et en exécuter un peut être en contradiction avec les règles d'utilisation de la machine sur laquelle vous êtes !

5.3. Perl

Dans le cas très rare où vous n'auriez pas Perl sur la machine, vous devrez construire les sources vous-même. Avec les commandes suivantes, vous devriez pouvoir installer votre propre version de Perl sur votre système avec :

bash$ wget http://perl.com/CPAN/src/stable.tar.gz
bash$ tar zvxf stable.tar.gz
bash$ cd perl-5.8.1 (ou quelque soit la version de Perl qui est appelée)
bash$ sh Configure -de -Dprefix=/home/foo/perl
bash$ make && make test && make install

Une fois que Perl est installé dans un répertoire (probablement dans ~/perl/bin), vous devrez changer les emplacements dans les scripts, ce qui est expliqué plus loin dans cette page.

5.4. Les modules Perl

Installer les modules de Perl en tant que non administrateur est probablement la partie la plus difficile du processus. Il y a deux méthodes différentes : un Perl complètement indépendant avec ses propres modules, ou des modules personnels utilisant la version actuelle de Perl (installée par l'administrateur). La méthode indépendante prend pas mal d'espace disque, mais est moins complexe, alors que la méthode mixte n'utilise pas plus d'espace que les modules eux-mêmes, mais demande plus de travail à installer.

5.4.1. La méthode indépendante

La méthode indépendante nécessite l'installation de votre propre version de Perl, comme on l'a expliqué dans la section précédente. Une fois installée, vous pouvez lancer l'interpréteur de commandes CPAN avec la commande suivante :

bash$ /home/foo/perl/bin/perl -MCPAN -e 'shell'

Puis :

cpan> install Bundle::Bugzilla

Avec cette méthode, l'installation de module se fera généralement avec beaucoup moins de difficultés, mais si vous avez le moindre problème, vous pouvez consulter la section suivante.

5.4.2. La méthode mixte

Tout d'abord, vous allez devoir configurer CPAN pour installer les modules dans votre répertoire personnel. Voici ce que dit la FAQ de CPAN à ce sujet :

5) Je ne suis pas administrateur, comment puis-je installer un module dans un répertoire personnel ?

Voici une façon de faire qui vous conviendra certainement :

o conf makepl_arg "LIB=~/myperl/lib \
               INSTALLMAN1DIR=~/myperl/man/man1 \
               INSTALLMAN3DIR=~/myperl/man/man3"
install Sybase::Sybperl

Vous pouvez rendre ce réglage permanent comme tous les paramètres « o conf » à l'aide de :

o conf commit

Vous devrez ajouter ~/myperl/man à la variable d'environnement MANPATH ainsi qu'indiquer à vos programmes Perl de regarder dans ~/myperl/lib, par exemple en incluant :

use lib "$ENV{HOME}/myperl/lib";

ou en réglant la variable d'environnement PERL5LIB.

Une autre chose que vous devriez garder à l'esprit est que le paramètre UNINST ne devrait jamais être activé si vous n'êtes pas root.

Il vous faudra donc créer un répertoire Perl dans votre répertoire personnel, ainsi que les répertoires lib, man, man/man1, et man/man3 dans ce répertoire Perl. Réglez la variable MANPATH et la variable PERL5LIB afin que l'installation des modules se fasse sans difficulté (régler UNINST=0 dans vos options « make install » lors de la première configuration de CPAN est aussi une bonne idée).

Ensuite, allez dans l'interpréteur de commandes CPAN :

bash$ perl -MCPAN -e 'shell'

À partir de là, vous allez devoir entrer la commande « o conf » présentée plus haut et valider les changements. Puis vous pouvez lancer l'installation :

cpan> install Bundle::Bugzilla

L'essentiel du processus d'installation de module devrait se passer sans accrocs. Cependant, il se peut que vous ayez des problèmes avec Template. Pour commencer, il va falloir essayer d'installer Template avec les options XS Stash activée. Si ça ne marche pas, il se peut qu'on vous balance des messages d'erreur du compilateur C et qu'on vous renvoie à l'invite de l'interpréteur de commande CPAN. Dans ce cas, recommencez l'installation, et désactivez cette option. (En fait, répondez non à toutes les questions sur Template.) Il est également possible que le processus échoue à quelques tests. Si, au final, le taux de réussite aux tests est raisonnable (90+%), forcez l'installation à l'aide de la commande suivante :

cpan> force install Template

Si vous le souhaitez, vous pouvez aussi installer les autres modules optionnels :

cpan> install GD
cpan> install Chart::Base
cpan> install MIME::Parser

5.5. Serveur HTTP

Idéalement, il faut également l'installer en tant que root et l'exécuter sous un compte serveur web particulier. Tant que le serveur Web permettra l'exécution des fichiers *.cgi hors d'un répertoire cgi-bin, ainsi qu'un moyen de refuser l'accès à certains fichiers (comme un fichier .htaccess), vous devriez bien vous en sortir.

5.5.1. Lancer Apache en tant qu'utilisateur non root

Vous pouvez lancer Apache en tant qu'utilisateur non root, mais le port attribué devra être supérieur à 1024. Si vous entrez httpd -V, vous obtiendrez une liste des variables qu'utilise votre copie système de httpd. L'une d'entre elles, à savoir HTTPD_ROOT, vous indique l'endroit où l'installation cherche ses informations de configuration.

À partir de ce point, vous pouvez copier les fichiers de configuration dans votre répertoire personnel pour commencer leur modification. Lorsque vous les éditez et que vous utilisez l'option -d pour outrepasser le HTTPD_ROOT compilé dans votre serveur web, vous prenez le contrôle de votre propre serveur Web personnalisé.

[Note]Note

Vous devrez démarrer les démons vous-même. Vous pouvez soit demander à votre administrateur système de les ajouter au fichier de démarrage, soit ajouter une entrée crontab qui exécute un script qui fera une vérification de ces démons et les redémarrera si besoin est.

[Avertissement]Avertissement

N'exécutez PAS de démons ou d'autres programmes sur un serveur avant de consulter d'abord l'administrateur système ! Les démons consomment des ressources système et en exécuter un peut être en contradiction avec les règles d'utilisation de la machine sur laquelle vous êtes !

5.6. Bugzilla

Si vous deviez installer des modules Perl en tant qu'utilisateur non root (Section 5.4, « Les modules Perl ») ou dans des répertoires non standards, vous devrez modifier les scripts, en spécifiant l'emplacement correct des modules Perl :

perl -pi -e 's@use strict\;@use strict\; use lib \"/home/foo/perl/lib\"\;@' \
    *cgi *pl Bug.pm processmail syncshadowdb

Modifiez /home/foo/perl/lib dans votre répertoire de bibliotèques Perl personnel. Vous pouvez vraisemblablement sauter cette étape si vous utilisez la méthode indépendante d'installation du module Perl.

Lorsque vous lancerez ./checksetup.pl pour créer le fichier localconfig, il fera une liste des modules Perl qu'il trouvera. S'il en manque un, revenez en arrière et revérifiez l'installation du module depuis l'interpréteur de commandes CPAN, puis supprimez le fichier localconfig et réessayez.

[Avertissement]Avertissement

L'option dans localconfig avec laquelle vous risquez d'avoir des problèmes est le groupe du serveur Web. Si vous ne parvenez pas à remonter jusqu'à index.cgi (vous obtenez une erreur du type Accés Interdit, vous devrez peut-être être assouplir vos droits d'accès et effacer le groupe du serveur Web. Bien entendu, cela peut représenter un risque pour la sécurité. Il est vrai qu'un interpréteur de commandes correctement sécurisé et/ou un accès limité aux comptes munis d'interpréteurs de commandes diminuent le risque au niveau sécurité, mais c'est à vous d'assumer.