Configuration d'Apache pour du développement en simple utilisateur

Bien souvent, par paresse, on développe sur un serveur Apache installé depuis les packages et lancé par root sur le port 80; cependant, il est plus confortable de se configurer un serveur à part, lancé en simple utilisateur, et qu'on peut donc redémarrer à volonté sans devoir repasser par le compte root. Il est bien sûr possible de télécharger le source d'Apache, de le compiler et de l'installer dans le répertoire personnel, mais cela présente plusieurs inconvénients qui font de cette méthode une méthode peu élégante:

Marche à suivre

Le démarrage et l'arrèt d'Apache sont gérés par apachectl. Apachectl est un script shell en haut duquel se trouvent quelques éléments configurables. C'est donc par ce fichier que la configuration commence. Comme un utilisateur normal ne peut pas écouter sur un port inférieur à 1024, il va falloir configurer ce serveur sur un autre port que le 80; j'ai choisi le 8080 pour la suite.

Installation d'Apache

Il faut d'abord un Apache installé, typiquement depuis les packages. J'utilise le package apache-perl, de la Debian Etch: apt-get install apache-perl.

Configuration de l'environnement privé de l'utilisateur

Se placer dans son répertoire personnel et créer une arborescence de répertoires pour accueillir les fichiers de configuration et de données. Mais avant cela, c'est plus agréable de se configurer un répertoire dans le $PATH pour placer les exécutables. Debian est presque prêt pour cela:

  1. Créer un répertoire bin dans le répertoire personnel: mkdir ~/bin.
  2. Editer ~/.bash_profile et décommenter les trois lignes sous set PATH so it includes user's private bin if it exists. Pour les autres distributions, on peut simplement y ajouter une ligne PATH=~/bin:${PATH}.
  3. Configurer le terminal pour lancer un login shell. Sur les 6 consoles virtuelles, il n'y a rien à faire. Sur le Xterm, il faut modifier le lanceur pour ajouter l'option -ls. Sur le terminal Gnome, aller dans "Edition","Profil courant", onglet "Titre et commande", cocher la case "Lancer la commande en tant que shell de connexion". Je le note ici car c'est quelque chose auquel on prête rarement attention, mais cela relève du shell, et non d'apache.
  4. Ouvrir un nouveau terminal pour jouir des nouveaux paramètres

On peut maintenant s'occuper d'Apache: copier /usr/sbin/apachectl (dans mon cas /usr/sbin/apache-perlctl) dans ~/bin et modifier la section de configuration au début du fichier, juste après le gros commentaire:

PIDFILE=/home/julien/var/run/apache-perl.pid
HTTPD='/usr/sbin/apache-perl -f /home/julien/etc/apache-perl/httpd.conf'
STATUSURL="http://localhost:8080/server-status

Ensuite, créer les répertoires nécessaires: mkdir -p ~/etc/apache-perl ~/var/run ~/var/lock ~/var/log/apache-perl ~/var/www, puis y copier les fichiers de configuration: cp -r /etc/apache-perl/* ~/etc/apache-perl.

On peut maintenant configurer le serveur via le fichier ~/etc/apache-perl/httpd.conf:

ServerRoot /home/julien/etc/apache-perl
LockFile /home/julien/var/lock/apache-perl.lock
PidFile /home/julien/var/run/apache-perl.pid
ScoreBoardFile /home/julien/var/run/apache-perl.scoreboard
Port 8080
User julien
Group julien
ServerAdmin julien@localhost
ErrorLog /home/julien/var/log/apache-perl/error.log
CustomLog /home/julien/apache-perl/access.log combined
# A la dernière ligne:
Include /home/julien/etc/apache-perl/conf.d

On peut encore modifier les paramètres relatifs à DocumentRoot, désactiver mod_userdir, qui dans ce cas sera peu utile, redéfinir le répertoire des scripts CGI.

Démarrer le serveur

Comme le script apachectl est dans le $PATH, il suffit de le lancer avec au choix les options start, stop, restart, status, ...

Julien De Bona - http://debona.dyndns.org - e-mail: julien(chez)bawet(point)org - Jabber: julien@debona.dyndns.org

Valid XHTML 1.0 Strict Valid CSS! Powered by Debian Powered by Linux Powered by Apache Created with Vim