Un petit article en guise de note de rappel si j'oublie et qui pourra servir à d'autres, j'en suis sur, pour configurer son serveur Cherokee et PHP afin d'avoir des VHost avec une config PHP différente.

En l'occurence, mon serveur sert à la fois des sites en production et des sites en développement et je voulais simplement que PHP affiche les erreurs et autres notices plutôt que de les logguer, comme il était spécifié dans le php.ini. PHP étant exécuté en tant que CGI avec Cherokee, la solution est de créer une nouvelle source de donnée via une autre instance de PHP qui chargera un autre fichier ini.

Nous allons commencer par créer le nouveau fichier php.ini. Je l'ai mis dans /etc/php/cgi/php.dev.ini, à coté de celui par défaut.

Rendons nous maintenant dans l'admin de Cherokee. Dans la partie Sources, nous allons dupliquer la source "PHP Interpreter" et la renommer "PHP Interpreter DEV". Nous allons changer le port d'écoute par celui que vous voulez. J'ai mis 47991 car celui par défaut était 47990. Puis nous allons modifier la commande de l'interpréteur pour qu'elle appelle php-cgi en chargeant notre php.dev.ini en renseignant le champs par la suivante : /usr/bin/php-cgi -b 127.0.0.1:47991 -c /etc/php/cgi/php.dev.ini.

Administration Cherokee - Sources

Nous pouvons maintenant nous rendre dans la partie VServer, choisir le serveur virtuel concerné, allez dans la partie "Behavior", et choisir "Extensions php". Dans l'onglet "Gestionnaires", tout en bas dans la section "Affectation des Sources d'Information", vous allez choisir le serveur d'application "PHP Interpreter DEV". Il va apparaitre au dessus dans le tableau intitulé "Sources d'Information" et dans lequel vous supprimerez la précédente source "PHP Interpreter".

Administration Cherokee - VServers

Ne reste plus qu'à sauvegarder et à demander un redémarrage gracieux. Et voilà : Parse error: syntax error, unexpected ';' in /…/script.php on line 27 \o/