Installation et configuration de Cherokee sous Ubuntu

Date: 17/03/2010 | Catégories: Open-source,Systeme,Web | Tags: ,,

C'est en lisant le dernier GLMF que je suis tombé sur l'article de Carl Chenet sur le serveur Web Cherokee. Ce serveur libre (licence GPL) s'annonce  stable (comme Apache), rapide (plus qu'Apache) et facile à configurer (pas comme Apache).Écrit en langage C, il propose en standard une interface Web de configuration et un système de plugins permettant de facilement adapter le serveur à nos besoins.

Nous allons donc voir le détail de l'installation de Cherokee sur une distribution GNU/Linux Ubuntu 9.10 ainsi que sa configuration standard.

Une vidéo de mise en bouche

Avant de commencer, voici un screencast d'introduction à Cherokee (en Anglais):

Cherokee Web Server - Introduction from alobbs on Vimeo.

Installation de Cherokee

Cherokee se trouve dans les dépôts standard d'Ubuntu. Seulement, la version disponible date un peut (0.99.19-1build1 au moement de l'écriture de cet article). Heureusement, il existe dans les PPA une version plus récente. On commence donc par ajouter le dépôt PPA en question:

Ensuite on passe à l'installation complète (avec support du PHP et HTTPS):

On teste l'installation en pointant son navigateur Web vers l'URL: http://192.168.29.129/ (remplacer l'adresse IP par celle du serveur sur lequel vous avez installé Cherokee...). La page suivante devrait apparaitre devant vos yeux ébahis.

Si vous avez lu l'introduction vous avez noté qu'il y a une interface Web de configuration (pas besoin d'aller trifouiller des tonnes de fichiers textes...). La  configuration cette interface d'administration (sic...) s'effectue grâce aux commandes suivantes:

Il est possible de filtrer les adresses IP sources (celle qui on le droit d'administrer Cherokee en utilisant l'option -b=192.168.29.100 seul la machine d'adresse IP 192.168.29.100 pourra accéder à l'interface d'adminsitration).

Il ne reste plus qu'a pointer son navigateur Web vers l'URL: http://192.168.29.129:9090 (ou http://localhost:9090 si vous êtes directement sur la machine).

Configuration de Cherokee

On commence la visite du propriétaire avec le menu Etat qui permet d'avoir une vue sur votre serveur Web avec notamment un graphe sur la charge du serveur (grâce à RRD):

On peut également y voir le répertoire par défaut ou doit être stocké le contenu de votre site: "Default WWW:    /var/www"

Par exemple on va créer la superbe page HTML suivante:

Il suffit de recharger l'URL http://192.168.29.129/ pour voir s'afficher la page.

On poursuit par la découverte du deuxième menu de l'interface d'administration de Cherokee: Général. L'onglet Réseau permet de configurer le comportement de votre serveur. C'est notamment là qu'il faut activer le type de graphe RRDtools afin d'avoir de beau graphes dans le menu Etat.

On passe ensuite à l'onglet Port à écouter qui comme son nom l'indique permet de configurer les ports TCP en écoutes pour les requêtes HTTP (c'est le port 80 qui est défini par défaut). Il est possible de configurer plusieurs ports d'écoutes en HTTP et HTTPs (on reviendra sur ce point un peu plus loin):

On passe ensuite à l'onglet Permission du serveur ou l'on peut configurer le nom et le groupe système avec lequel Cherokee va être lancé:

On passe ensuite à la partie que je trouve la plus intéressante par rapport aux autres serveurs Web: la simplicité de création des Serveurs Virtuels.

Un serveur web virtuel permet d'associer un nom de machine (par exemple blog.mondomaine.com) à une arborescence précise de mon serveur Web (par exemple /var/www/blog). Il est bien sûr possible de créer autant de serveurs web virtuels que de besoins.

La première fonction permet d'ajouter simplement une association "nom de machine" / "répertoire" (option Ajouter un nouveau serveur virtuel):

Pour le support du langage PHP (Cherokee supporte également le langage PHP via le module php5-cgi, installé dans la première partie de cet article) sur un serveur virtuel existant. Il faut cliquer sur le serveur en question dans la liste puis se rendre dans l'onglet Behavior, cliquer sur le bouton Assistants puis choisir PHP dans la liste (sous menu Langues) et enfin cliquer sur Run Wizard:

La ligne PHP va être ajouté dans la liste des Behavior:

Il faut ensuite cliquer sur le radio bouton Final

On peut tester simplement la configuration en ajoutant un fichier de test index.php contenant les lignes suivantes à la racine de votre serveur virtuel:

Et le résultat de l'URL http://192.168.29.129/index.php

Pour créer un serveur virtuel il est également possible de suivre un Assistant qui va vous proposer d'installer pour vous une liste de services (Liferay, WordPress, Dupral, Zend, Trac, MoinMoin, PhpBB, ...).

Sécuriser les échanges

On va ici parler de HTTPs qui permet de chiffrer les échanges entre votre navigateur Web et votre serveur Cherokee. Cette étape de configuration est bien sûr optionnelle.

On commence par configurer OpenSSL (le module qui va chiffrer) pour qu'il génère des certificats dédiés à notre serveur (virtuel ou pas).

On copie alors les deux fichiers générés dans le répertoire /etc/cherokee:

On doit ensuite se rendre dans le menu Général / Réseau de l'interface d'administration de Cherokee et activer le module OpenSSL:

Ensuite on configure le serveur pour écouter sur le port HTTPS (TCP/443) dans le menu Général / Port à écouter:

Puis associer les clés de chiffrement à notre serveur virtuel (onglet Sécurité):

Enfin il ne faut pas oublier de redémarrer le serveur pour que la configuration soit appliquée:

Et le résultat sur l'URL https://192.168.29.129/index.php

Conclusion

Pour finir quelques resources: