116px-gartoon-gedit-icon11.png Dans l’article précédent nous nous demandions quelle est la meilleure configuration pour un serveur web hébergé chez OVH sur un serveur Kimsufi ? C’est une question que l’on peut rencontrer souvent sur les forums d’OVH (entre autre). webofmars vous propose une série d’articles pour y répondre. Cet article se veut collaboratif, postez vos commentaires et idées dans les commentaires ci-dessous, nous les intégrerons et proposeront à la fin une configuration globale (sur github par exemple) pour pouvoir déployer un serveur rapidement. La question ce pose en terme de solutions mais aussi en terme de fichiers de configuration. L’OS de référence est une debian wheezy (7.0) mais le contenu est surement adaptable à une autre distribution assez facilement. Les bases étant maintenant posées, il est temps de retrousser les manches et les ourlets de pantalons nous attaquer de pleins pieds au sujet !

Les solutions logicielles sur un kimsufi (partie 2)

Cas du PHP

Ayant opté pour un serveur web Nginx, un choix nous est directement fermé : celui du module PHP à charger directement dans le cour du serveur web. C’est ce qui ce faisait de manière générale avec Apache, mais cela présentait 2 problèmes majeurs :

  1. Il fallait disposer de module compilé spécialement pour chaque version d’apache (ou presque, je vous fait grâce des détails)
  2. Ce module était chargé pour chacune des requêtes utilisateur, même s’il ne s’agissait aps d’un fichier PHP (80 % des cas environs)

Inutile de vous dire que ce n’est pas ce que l’on faisait de mieux en termes de performances ! Examinons donc nos options restantes :

  • PHP en mode CGI (un processus PHP lancé par accès à un fichier PHP dans lequel on “pipe” la requête)
  • PHP en mode FastCGI (la même chose sauf que l’on réutilise des processus PHP qui tournent en mode démon avec un gestionnaire, on parle aussi de PHP-FPM (FastCGI Process Manager)).
  • Proxy vers un Apache qui a le module PHP

Conclusion PHP

La façon moderne de faire est clairement PHP-fastCGI et son ami PHP-FPM. En plus d’offrir de bien meilleures performances, PHP-FPM a de nombreux avantages :

  • Robustesse
  • Permet d’avoir des “pools” avec des configuration différentes
  • Permet d’avoir plusieurs version de PHP en parallèle
  • Nombre de processus PHP qui varie dynamiquement

J’espère vous avoir convaincu des choix faits au niveau de PHP, dans le prochain article nous irons voir ce qui ce passe du coté de la base de données !