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:
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.
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.
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:
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.
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