Afin de mettre à disposition de ma famille mes photos numériques, je souhaite monter un serveur Web qui hébergera une galerie (script php).

En effet compte tenu de la volumétrie (plusieurs gigas de photos) et du caractère personnel des photos je ne souhaite pas faire héberger cette gallerie (sur Free.fr par exemple).

Un serveur web est un ensemble de briques logiciel :

  • une base de données : MySQL le plus souvent
  • un moteur de scripts : c’est ce qui permet de faire un site dynamique le plus courant est php
  • un serveur web proprement dit : le plus souvent Apache, mais il existe des prétendants et notamment Cheroke qui serait plus rapide qu’Apache et surtout plus facile à administrer.


Installation de MySQL

Cela se fait par un simple :

sudo aptitude install mysql-server mysql-client


Qui installe les paquets suivant (par le jeu des dépendances et des méta-paquets) :

libdbd-mysql-perl{a} libdbi-perl{a} libhtml-template-perl{a} libnet-daemon-perl{a}
 libplrpc-perl{a} mysql-client mysql-client-5.1{a} mysql-client-core-5.1{a} mysql-server
 mysql-server-5.1{a} mysql-server-core-5.1{a}


Lors de l’installation on nous demande le mot de passe du super-utilisateur de MySQL (root) :


Au terme de l’installation on peut s’assurer que le service MySQL tourne par :

sudo service mysql status


Qui renvoi :

mysql start/running, process 25769


Installation de Cherokee

Là encore l’installation est simplissime :

sudo aptitude install cherokee


Qui installe :

cherokee libcherokee-base0{a} libcherokee-client0{a} libcherokee-config0{a}
 libcherokee-mod-admin{a} libcherokee-server0{a} spawn-fcgi{a}


Au terme de l’installation on à un serveur Web statique c’est à dire capable de servir aux navigateurs de simples pages HTML, pour s’en assurer il suffit d’aller sur l’adresse de votre serveur en http :

http://ip_server

ip_server : est l’adresse IP de la machine sur laquelle vous avez installé Cherokee, si il s’agit de la machine locale, on pourra utiliser localhost.

Cherokee vous sert alors la page d’accueil du serveur :


Administration Cherokee

Le gros point fort de Cherokee est sont interface d’administration web, pas besoin d’éditer des fichiers de configuration.

Par défaut l’interface d’administration n’est pas accessible, il au préalable lancer sur le serveur contenant Cherokee la commande suivante :

sudo cherokee-admin -b


Qui renvoi le login et le mot passe unique pour cette session de connexion à l’interface d’administration :

Login:
 User:              admin
 One-time Password: yDRmCWliaUxnM480
 
Web Interface:
 URL:               http://localhost:9090/
 
Cherokee Web Server 1.0.8 (Aug 11 2010): Listening on port ALL:9090, TLS
 disabled, IPv6 enabled, using epoll, 4096 fds system limit, max. 2041
 connections, caching I/O, single thread


Rque : si vous ne lancez pas cette commande avec sudo vous aurez le messages suivant

Unable to raise file descriptor limit to 4096
Configuration file is not writable
The configuration file <code>/etc/cherokee/cherokee.conf</code> cannot be modified


Il suffit alors d’aller à l’URL http://ip_server:9090 pour accéder à l’interface d’administration (après avoir renseigné le login, mot de passe indiqué par la commande cherokee-admin)

Rque : les copie d’écran de cherokee sont réalisées avec la version 1.0.4-1 (version par défaut sous Ubuntu 10.10)

 

PHP

Pour avoir un site dynamique, on a besoin d’un moteur de script, le plus courant étant php

Pour l’installer

sudo aptitude install php5-cgi php5-mysql


Rque : php5-mysql installe les modules autorisant la connexion à MySQL depuis php


Ce qui installe :

php5-cgi php5-common{a} php5-mysql



Ajout du support php à Cherokee

Rque : les copie d’écran de cherokee sont réalisées avec la version 1.0.4-1 (version par défaut sous Ubuntu 10.10)


Dans l’administration de cherokee cliquer sur vServers dans le bandeau haut :

Par défaut il n’y a qu’un seul site de configuré « default », cliquer dans l’onglet « Behavior » :


Cliquer sur le bouton « Rule management » pour afficher les caractéristique du serveur virtuel :

Cliquer sur le bouton + à gauche (à côté de « Behavior ») pour ajouter un rôle à notre serveur, un wizard apparait :

Sélectionner Langues, puis php et enfin appuyer sur ajouter :

Cliquer sur Créer

Le rôle php est ajouté à notre serveur :


Cliquer sur Sauvegarder (dans le bandeau haut) puis sur « redémarrage gracieux » dans la boite de dialogue qui apparait.


Test de php

Pour tester php, il suffit de copier le code suivant dans un fichier portant l’extension php (par exemple info.php) et placé dans /var/www (racine du site web)

<?php
   echo phpinfo();
?>


Puis ensuite d’aller à l’url :

http://ip_serveur/info.php


Une page comme celle-ci doit apparaitre :

Problème rencontré

Lors de mes premier essai, sur mon serveur (Ubuntu minimal 10.04), le php n’était pas reconnu par Cherokee, dès que j’allais sur une page php, mon navigateur me proposait de télécharger le fichier php, comme si l’ajout du support php à Cherokee n’était pas configuré.

J’ai essayé de nombreuses choses sans succès à tel point que j’ai renoncé à Cherokee pour Apache et au moment de rédiger cet article j’ai ré-essayé Cherokee et là miracle ca marche.

Je me suis dit que ça venait du fait que j’avais installé Apache et d’autres modules php (php5 et libapache2-mod-php5 au lieu de php5-cgi) j’ai donc refait une installation de zéro de Cherokee sur une machine virtuelle et là aussi ça marche…..


Sources :

Ubuntu – Installation de Cherokee : Serveur Web simple et Performant

Installing Cherokee With PHP5 And MySQL Support On Ubuntu 10.04

Installation et configuration de Cherokee sous Ubuntu

Les commentaires sont fermés.