Skip to Content

Installation et configuration du serveur web Cherokee

Cherokee : Serveur Web gérant php via php-cgi ainsi que SSL.

Principaux atouts :
    - plus performant que apache (du moins sur le papier)
    - plus léger que apache, moins de chose inutile que des chose de base
    - interface de configuration web complète et relativement bien faite

Principaux defaults :
    - Encore en développement, pas de version stable mais utilisable
    - Utilise php-cgi avec tous les problème que cela peut apporter

Site officiel : http://www.cherokee-project.com/

Prérequis : en fonction de l'usage openssl, php-cgi, mysql, postgress, ldap, ffmpeg, python, rrdtool

Il éxiste de paquets pour la majorité des distributions mais qui ne sont pas forcément à jour avec la version officielle.
Etant donné le caractère en développement du serveur, il est recommander d'utiliser la dernière version stable qui est
actuellement la 1.0.1

Pour cet atelier, afin que tout le monde ait la même version, on utilisera les sources que l'on va compiler.

On récupère les sources sur le site officiel.

On décompresse avec la commande tar zxvf cherokee-0.99.44.tar.gz
On rentre dans le répertoire cd cherokee-0.99.44
On exécute un ./configure --help pour connaitre les option de compilation.
On compile avec ./configure --prefix=/opt/cherokee/ --exec-prefix=/opt/cherokee/
Puis si tout ce passe bien et que les options voulus sont bien activé on fait un make
On se logue en root et make install (ou sudo make install)

On ajoute le chemin à la variable path avec export PATH=$PATH:/usr/bin:/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/opt/cherokee/bin:/opt/cherokee/sbin
(export temporaire, l'ajouter dans le bashrc pour qu'il soit permanant ou /etc/profile ou autres en fonction de la distribution)

On démare ensuite le serveur d'administration avec cherokee-admin
Par default, la connection à l'administration n'est possible qu'avec localhost.
On peut ajouter l'option suivi de l'ip à partir de laquelle on se connecte ou juste -b pour autoriser toutes les connections.
Un mot de pass est généré, un simple copier coller au bon endroit permet de se connecter à l'administration.

Dans un navigateur web on ouvre http://domaine.ltd:9090

L'interface est en python. Elle est francisé mais pas complètement.

On peut lancer le serveur via l'interface et faire tous les réglages possible avec. Il n'est pas recommandé d'éditer le fichier de configuration. Et de toutes façons, ça ne sert à rien, il n'y a pas d'option en plus.

La page d'accueil permet de voir l'état du serveur ainsi q'un graphique d'utilisation du serveur lorsque rrdtool est installé et activé.
Général permet de configurer le réseau, les permissions, ou les différents ports à écouter. On peut également activer ou nom les graphiques d'utilisation du serveur dans l'onglet réseau.
Serveur virtuel permet la configuration des différents domaines attachés au serveur.
Sources d'information permet de configurer les programmes extérieurs comme php, ruby ou python ...
Icônes et types mime se passe de commentaires.
Avancé permet des réglages plus fin en matière de performance ou de chemin de configuration de fonctionneme et autres. Comme l'indique le Warning, il faut bien savoir ce que l'on fait avant de toucher cette partie.

Je vous invite à consulter la documentation officielle pour plus d'informations.

Exemple : Installation d'un site fonctionnant avec php et mysql.

On clic sur Serveurs virtuels. Puis sur Ajouter un nouveau serveur virtuel. On rentre son nom ou surnom et le chemin depuis la racine vers le dossier contenant le site. Et <Entrée> pour valider.
Une nouevelle entrée est créer. En cliquant dessus , on peut configurer plus spécifiquement ce nouveau site.
L'onglet basics permet de configurer le nom du serveur son chemin ainsi que les index. On rentre dans ce champ "index.php".
L'onglet host match permet de spécifier différents nom d'hôte attaché à ce site. Soit un nom, soit une ip.  Il est également possible d'utiliser l'urlrewriting , nous verrons plus loin comment.
Dans notre cas, sélectionner Wildcards et donné votre domaine <domaine.ltd> ou pour nous test.localhost
L'onglet Behavior (ou comportement) permet entre autre d'ajouter des languages comme php.
En utilisant Assistant puis langue puis en sélectionnant php et enfin runwizard on configure le serveur pour qu'il utilise php-cgi.
Cet assistant permet aussi de configurer diférents projets, cms ou tâches. On peut ainsi configurer très facilement drupal, symfony, django ou Ruby on Rails.
L'onglet personnal web permet  de configure les répertoire des utilisateurs comme peut le faire apache.
On peut ensuite gérer les logs de manière indépendante pour chaque site ou dans le même fichier avec les 2 onglets suivant.
Enfin l'onglet sécurité permet de configurer une connection ssl.

Il suffit de cliequer sur sauvegarder pour enregistrer les modifications.