Installation de Cherokee sur une Debian Lenny

 

D'après le site officiel, Cherokee est un serveur web, rapide, flexible, facile à configurer, supportant une multitude de technologies : FastCGI, SCGI, PHP, CGI, uWSGI, SSI, TLS et SSL, Virtual hosts, Authentification, Load Balancing, fichiers de logs compatible Apache compatible, Data Base Balancing, Reverse HTTP Proxy, Traffic Shaper, Video Streaming ...

Cette méthode d'installation fonctionne aussi sous Ubuntu 10.04 LTS

Installation de Cherokee

Comme souvent maintenant, la version disponible en paquet pour Debian Lenny de Cherokee est la (0.7.2-4). La dernière version stable est la 1.0.15 et la version disponible dans Debian testing est la 1.0.8.

Il existe plusieurs méthodes conseillées dans la documentation officielle : http://www.cherokee-project.com/doc/basics_installation_unix.html

La méthode avec l'utilisation des dépôts de la teting peut occasionner des problèmes de mises à jour de paquets desquels dépendraient d'autres applications, donc à tester avec précautions.

Pour une fois je vais choisir de compiler à partir des sources ayant des besoins avec des contraintes d'utilisation dans un environnement avec d'autres applications dépendant des paquets de la distribution Lenny stable.

On commence par installer les outils nécessaires à la compilation et quelques dépendances  :

# apt-get install build-essential gettext

On veut garder un comportement comme Apache, on va donc créer le même utilisateur et le même groupe que pour Apache :

# groupadd -g 33 www-data
# useradd -u 33 -g 33 www-data 

On télécharge et on décompresse les sources de Cherokee :

# cd /usr/src
# wget http://www.cherokee-project.com/cherokee-latest-tarball -O -| tar zxvf - 

Si vous avez besoins du support SSL il faut installer le paquet libssl-dev.

Et on installe

# cd cherokee-1.0.1x
# ./configure --localstatedir=/var --prefix=/opt/cherokee --sysconfdir=/etc --with-wwwroot=/var/www --with-wwwuser=www-data --with-wwwgroup=www-data
 --disable-ipv6
# make
# make install

On crée le fichier d'init :

# cp contrib/cherokee /etc/init.d/
# chmod +x /etc/init.d/cherokee
# update-rc.d -f cherokee start 91 2 3 4 5 . stop 09 0 1 6 .

On démarre et on vérifie qu'il fonctionne :

# /etc/init.d/cherokee start

# ps -auxf | grep cherokee
root     17805  0.0  0.1  26776   896 ?        S<l  10:30   0:00 /opt/cherokee/sbin/cherokee
www-data 17808  0.0  0.3  74740  1708 ?        S<l  10:30   0:00  _ /opt/cherokee/sbin/cherokee-worker

# netstat -tpnl | grep cherokee
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17808/cherokee-work

Avec un navigateur on va sur l'adresse de la machine et si tout marche on obtiens une page affichant quelque chose comme ceci :

Pour finir on rajoute les paths dans /etc/profile :

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/cherokee/sbin:/opt/cherokee/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/cherokee/bin"
fi

Administration

Cherokee dispose d'une console web d'administration qu'il faut démarrer :

# cherokee-admin -b &
[1] 17836
# [09/12/2010 10:40:10.906] (error) rrd_tools.c:120 - Could not find the rrdtool binary.
Cherokee Web Server 1.0.12 (Dec  9 2010): Listening on port ALL:9090, TLS
disabled, IPv6 disabled, using epoll, 4096 fds system limit, max. 2041
connections, caching I/O, 5 threads, 408 connections per thread, standard
scheduling policy

Login:
  User:              admin
  One-time Password: IZj9AuRroUI8iujY

Web Interface:
  URL:               http://localhost:9090/

Pour corriger l'erreur rrdtool :

# apt-get install rrdtool

L'interface d'admin est donc disponible sur le port 9090 avec un mot de passe à utilisation unique. On se retrouve alors sur un écran comme celui-ci :