Auteur:


Date:
17/03/2010

Catégories:
Open-source
Systeme
Web

Tags:



Installation et configuration de Cherokee sous Ubuntu

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:

  • http://www.webynux.net/ Pfff

    pour vous connecter depuis une autre machine (souvent le cas avec un serveur) tapez la commande
    sudo cherokee-admin -b -p 9091

    puis lancez http://ipdevotreserveur:9091 dans un navigateur

  • http://blog.zedroot.org/ zedtux

    Vraiment bien l’article.

    J’avais commencé à m’interesser à cherokee vue les performances, mais je m’étais arrêté à cause de subversion qui n’était pas pris en charge. Je ne sais pas si depuis ca à changé..

    En tout cas, jolie travail :)

  • http://blog.nicolargo.com NicoLargo

    @zedtux: effectivement la version actuelle de Cherokee ne supporte pas le protocole WebDAV et ne peut donc pas héberger un dépôt SVN/HTTP. En regardant un peu sur leur mailing, le support de WebDAV est cependant prévu mais aucune date n’est annoncée…

  • http://mikeinthamix.blog.free.fr Mickaël M

    Super article !!

    Je suis le projet depuis pas mal de temps et c’est vrai que le seul truc qui m’embête, c’est que WebDAV n’est pas encore supporté. J’avais lu, sur les listes de discussion du projet en février 2010, que le support de ce protocole n’arriverait pas avant au moins 6 bons mois.

    Dommage, parce que l’outil est très satisfaisant niveau perfs (supérieur à Apache2 d’après nos tests/benchs) et que le panel d’admin est hyper sexy et permet une prise en main facile du service…

  • Albert

    Bon Article (plus clair que son homologue papier ;)

    Une question toutefois me turlupine avec cherokee comment faire du dns wildcard pour des sous domaines ?

    merci de ta préponse

  • http://blog.nicolargo.com NicoLargo

    @Albert: je dois avouer que je ne sais pas… je n’ai pas essayé d’entrer une expression régulière dans le nom des serveur virtuel. Si qq a essayé je suis preneur de l’info.

  • http://blogmotion.fr/ Mr Xhark

    En tant que lecteur de Linux Mag je trouve sympa de trouver des explications chez toi :)

  • Pingback: L’hébergement total, chez soit – Influence PC

  • ppb

    Bonjour
    Un superbe Serveur.

    Plus qu’un commentaire une demande d’aide sur cherokee. Bien-sur j’ai déjà posté à plusieurs endrois mais, je n’ai pas de réponses.

    Voilà ma question : j’ai le problème suivant : quelque soi le mécanisme d’authentification que je mets en place (Htpasswd, Htdigest ou Fixed list) dans le serveur Cherokee j’ai systématiquement l’erreur 401: Authorization Required, sans possibilité d’authentification par une fenêtre popeup dans le navigateur quand on accède à la page protégée. Pour info je me suis servie de ce doc : http://www.cherokee-project.com/doc/…ntication.html, je bloque depuis le 6 /10/ 2010

    Je m’excuse d’avance si je ne devais pas poster ici.

    Cordialement et merci pour ton blog

    pp

  • http://hosting.aem-team.ch leglaude51

    Bonjour,
    Vraiment intéressant comme serveur. Quelques questions tout de même:
    1-peut-on faire du Hosting avec Cherokee?
    2-si oui, peut-on y installer un panneau d’administration style webmin?

    Actuellement mes serveurs tournent avec Apache 2.2.16 et si je peux changer, cela sera un avec un réel plaisir.

    D’avance merci pour les réponses.

    LG