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 la section intitulée « Installation » pour avoir une idée des étapes d’installation nécessaires. (Ces notes renverront à des étapes de ce guide.)
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. A partir de là, vous pouvez créer le compte bugs ou utiliser le compte qui vous est fourni.
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.
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
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é.
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.)
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.
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 !
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.gzbash$
tar zvxf stable.tar.gzbash$
cd perl-5.8.1 (ou quelque soit la version de Perl qui est appelée)bash$
sh Configure -de -Dprefix=/home/foo/perlbash$
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.
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.
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.
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'
A partir de là, vous allez devoir entrer la commande "o conf présentéer 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 GDcpan>
install Chart::Basecpan>
install MIME::Parser
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.
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.
A 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é.
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.
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 !
Si vous deviez installer des modules Perl en tant qu'utilisateur non root (la section intitulée « 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.
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.