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 :
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