2.6. Notes d'installation Unix (non-root)

2.6.1. Introduction

Si vous utilisez un système d'exploitation *NIX en n'étant pas « root », soit par manque d'accès (serveurs Web, par exemple) soit pour raisons de sécurité, ceci détaillera comment installer Bugzilla sur ce type de configuration. Il est recommandé de lire la partie Section 2.1 d'abord pour avoir une idée des étapes d'installation nécessaires. (Ces notes se référeront aux étapes de ce guide.)

2.6.2. MySQL

Vous avez peut-être MySQL installé en tant que « root ». Si vous définissez un compte avec un hôte Web, un compte MySQL doit être créé pour vous. De là, vous pouvez créer le compte « bugs » ou utiliser le compte qui vous a été donné.

Avertissement

Vous pouvez avoir des problèmes en définissant des permissions GRANT dans la base de données. Si vous utilisez un hôte Web, il y a des 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 sur d'autres zones), mais vous pouvez demander à votre administrateur système les paramètres de sécurité définis et/ou lui demander d'exécuter la commande GRANT pour vous.

Vous pourriez aussi ne pas être en mesure de changer le mot de passe de l'utilisateur « root » de MySQL (pour des raisons évidentes), aussi, sautez cette étape.

2.6.2.1. Exécuter MySQL en n'étant pas « root »

2.6.2.1.1. La méthode de configuration personnalisée

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


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

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

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

[safe_mysqld]
err-log=/home/toto/mymysql/the.log
pid-file=/home/toto/mymysql/the.pid
              

2.6.2.1.2. La méthode de création personnalisée

Vous pouvez installer MySQL zn n'étant pas « root », si vous en avez vraiment besoin. créez-le avec la variable « PREFIX » définié à /home/toto/mysql, ou utilisez des exécutables pré-installés en spécifiant que vous voulez mettre tous les fichiers de données dans /home/toto/mysql/data. S'il y a un autre serveur MySQL qui s'exécute sur le système qui ne vous appartient pas, utilisez l'option « -P » pour spécifier un port TCP qui n'est pas utilisé.

2.6.2.1.3. Démarrer le serveur

Après avoir créé votre programme « mysqld » et votre fichier « .my.cnf », vous devez initialiser les bases de données (UNE FOIS).


              bash$
              mysql_install_db
            

Puis démarrez le démon avec


              bash$
              safe_mysql &
            

après avoir lancé « mysqld » la première fois, connectez vous en tant que « root » et donnez les permissions (GRANT) aux autres utilisateurs. (Le compte « root » de MySQL n'a rien à voir avec le compte « root » des systèmes *NIX).

Note

Vous devrez démarrer les démons vous-mêmes. Vous pouvez soit demander à votre administrateur système de les ajouter aux fichiers de démarrage du système, soit ajouter une entrée dans le fichier crontab qui exécute un script vérifiant que ces démons sont lancés et les redémarre si nécessaire.

Avertissement

Ne lancez pas de démons ou autres services sur un serveur sans avoir d'abord consulter votre administrateur système ! Les démons utilisent des ressources système et en exécuter peut être en violation des conditions de service pour toute machine sur laquelle vous êtes utilisateur !

2.6.3. Perl

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


        bash$
        wget http://perl.org/CPAN/src/stable.tar.gz
        bash$
        tar zvxf stable.tar.gz
        bash$
        cd perl-5.8.1 (ou la version de Perl que vous avez)
        bash$
        sh Configure -de -Dprefix=/home/toto/perl
        bash$
        make && make test && make install
      

Dès que vous avez installé Perl dans un répertoire (probablement dans ~/perl/bin), vous devrez installer les modules Perl comme détaillé plus bas dans cette page.

2.6.4. Modules Perl

Installer les modules Perl sans être utilisateur « root » est réalisé en exécutant le script install-module.pl. Pour plus de détails sur ce script, consultez la documentation de install-module.pl.

2.6.5. Le serveur HTTP

Idéalement, ceci nécessite aussi d'être installé avec l'utilisateur « root » et s'exécuter sous un compte spécial pour le serveur Web. Tant que le serveur autorise l'exécution des fichiers *.cgi en dehors de cgi-bin et refuser l'accès à certains fichiers (comme le fichier .htaccess), ça devrait aller.

2.6.5.1. Exécuter Apache sans être « root »

Vous pouvez exécuter Apache sans être « root », mais le port devra être supérieur à 1024. Si vous saisissez la commande httpd -V, vous obtiendrez une liste des variables que votre copie système de httpd utilise. Une de celles-ci, « HTTPD_ROOT », vous indique où cette installation va rechercher ses informations de configuration.

De là, vous pouvez copier les fichiers de configuration vers votre répertoire home pour les modifier. Quand vous éditez ceux-ci et que vous utilisez l'option « -d » pour outrepasser la valeur de la variable « HTTPD_ROOT » compilée dans votre serveur Web, vous prenez le contrôle de votre propre serveur Web personnalisé.

Note

Vous devrez démarrer les démons vous-mêmes. Vous pouvez soit demander à votre administrateur système de les ajouter aux fichiers de démarrage du système, soit ajouter une entrée dans le fichier crontab qui exécute un script vérifiant que ces démons sont lancés et les redémarre si nécessaire.

Avertissement

Ne lancez pas de démons ou autres services sur un serveur sans avoir d'abord consulter votre administrateur système ! Les démons utilisent des ressources système et en exécuter peut être en violation des conditions de service pour toute machine sur laquelle vous êtes utilisateur !

2.6.6. Bugzilla

Quand vous exécutez ./checksetup.pl pour créer le fichier localconfig, il listera les modules Perl qu'il trouve. S'il en manque, revenez en arrière et revérifier l'installation du module depuis Section 2.6.4, puis supprimez le fichier localconfig et essayez à nouveau.

Avertissement

L'option dans le fichier localconfig avec laquelle vous pourriez avoir des problèmes est le groupe du serveur Web. Si vous ne pouvez pas afficher la page index.cgi (une erreur d'accès refusé par exemple), vous aurez sans doute à relâcher vos permissions et à vider le groupe du serveur Web. Bien sûr, ceci peut poser des problèmes de sécurité. Avoir un shell correctement emprisonné et/ou un accès limité aux comptes du shell peut diminuer les risques de sécurité, mais utilisez ceci à vos risques et périls.

2.6.6.1. suexec ou hébergement partagé

Si vous êtes sur un système qui utilise « suexec » (la plupart des environnements d'hébergement le font), vous aurez besoin de définir la valeur de webservergroup dans le fichier localconfig pour qu'elle corresponde à votre groupe principal, plutôt que celui avec lequel le serveur Web est exécuté. Vous devrez lancer les commandes suivantes après avoir exécuté ./checksetup.pl, chaque fois que vous le lancez (ou modifiez checksetup.pl pour qu'il le fasse pour vous grâce à la commande system()).
        for i in docs graphs images js skins; do find $i -type d -exec chmod o+rx {} \; ; done
        for i in jpg gif css js png html rdf xul; do find . -name \*.$i -exec chmod o+r {} \; ; done
        find . -name .htaccess -exec chmod o+r {} \;
        chmod o+x . data data/webdot
Faites particulièrement attention au nombre de point-virgules et de points. Ils sont tous importants. Une prochaine version de Bugzilla sera, avec un peu de chance, capable de faire ceci pour vous automatiquement.