{"componentChunkName":"component---src-templates-post-jsx","path":"/fr/running-drupal-with-frankenphp","result":{"data":{"markdownRemark":{"html":"<p>L’écosystème PHP évolue rapidement, notamment sur la partie <strong>exécution et performance</strong>.<br>\nDe nouvelles approches voient le jour pour <strong>simplifier le déploiement</strong> et <strong>accélérer les temps de réponse</strong> des applications.</p>\n<p>Parmi elles, <strong>FrankenPHP</strong> se démarque avec un modèle différent des architectures classiques basées sur <strong>PHP-FPM + Nginx/Apache</strong>.</p>\n<p>La question se pose donc : <strong>peut‑on faire tourner Drupal avec FrankenPHP</strong>, et dans quels cas cela a-t-il du sens ?</p>\n<hr>\n<h2>Comment Drupal fonctionne aujourd’hui</h2>\n<p>Dans une architecture classique, Drupal repose sur :</p>\n<ul>\n<li>Un <strong>serveur web</strong> (Nginx ou Apache)  </li>\n<li><strong>PHP-FPM</strong> pour exécuter le code PHP  </li>\n<li>Une <strong>base de données</strong> (MySQL, MariaDB, PostgreSQL…)  </li>\n<li>Éventuellement un <strong>système de cache</strong> (Redis, Memcached, CDN…)</li>\n</ul>\n<p>Ce modèle, solide et éprouvé, présente toutefois :</p>\n<ul>\n<li><strong>Plusieurs couches d’infrastructure</strong></li>\n<li><strong>Une configuration complexe</strong></li>\n<li><strong>Des coûts de maintenance non négligeables</strong></li>\n</ul>\n<hr>\n<h2>Qu’est-ce que FrankenPHP ?</h2>\n<p><strong>FrankenPHP</strong> est un <strong>serveur d’application moderne pour PHP</strong>, construit autour de :</p>\n<ul>\n<li><strong>Caddy</strong>, un serveur HTTP rapide et moderne  </li>\n<li>Une <strong>exécution directe</strong> du code PHP (sans PHP-FPM)  </li>\n<li>Un <strong>mode persistant (worker)</strong> inspiré de solutions comme Node.js ou Swoole  </li>\n</ul>\n<h3>Objectif</h3>\n<p>Simplifier l’architecture et <strong>améliorer les performances</strong> en réduisant les couches intermédiaires.</p>\n<hr>\n<h2>Les avantages pour Drupal</h2>\n<h3>1. Simplification de l’infrastructure</h3>\n<p>Avec FrankenPHP, vous pouvez :</p>\n<ul>\n<li>Supprimer complètement <strong>PHP-FPM</strong>  </li>\n<li>Réduire le nombre de composants à maintenir  </li>\n<li>Simplifier le <strong>déploiement</strong>, notamment en conteneur (Docker)</li>\n</ul>\n<p>En résumé, <strong>moins de complexité = moins de friction</strong>.</p>\n<hr>\n<h3>2. Amélioration des performances</h3>\n<p>Le <strong>mode persistant</strong> offre la possibilité de :</p>\n<ul>\n<li>Réduire les temps de démarrage des requêtes  </li>\n<li>Réutiliser certaines ressources et dépendances en mémoire  </li>\n<li>Gagner en <strong>rapidité de réponse</strong>, surtout sur des sites à fort trafic</li>\n</ul>\n<p>C’est un terrain prometteur pour les projets orientés performance.</p>\n<hr>\n<h3>3. Meilleure expérience développeur</h3>\n<p>FrankenPHP propose une approche moderne adaptée aux pratiques actuelles :</p>\n<ul>\n<li><strong>Configuration simple</strong></li>\n<li><strong>Démarrage rapide</strong></li>\n<li><strong>Intégration fluide avec Docker</strong></li>\n</ul>\n<p>Une expérience agréable pour les développeurs souhaitant tester ou prototyper rapidement.</p>\n<hr>\n<h2>Les limites et points de vigilance</h2>\n<h3>1. Compatibilité avec Drupal</h3>\n<p>Drupal n’a pas été initialement conçu pour un <strong>mode persistant</strong>.<br>\nCela entraîne plusieurs précautions à prendre :</p>\n<ul>\n<li>Gestion de la <strong>mémoire</strong> et des <strong>états persistants</strong>  </li>\n<li>Risques de <strong>comportements inattendus</strong> avec certains modules  </li>\n<li>Nécessité de <strong>tests approfondis</strong> avant une exploitation réelle</li>\n</ul>\n<p>Chaque cas d’usage mérite une validation spécifique.</p>\n<hr>\n<h3>2. Écosystème encore jeune</h3>\n<p>FrankenPHP reste une technologie récente :</p>\n<ul>\n<li>Peu de <strong>retours d’expérience</strong> sur de grosses installations  </li>\n<li><strong>Documentation</strong> encore en évolution  </li>\n<li><strong>Outils</strong> et intégrations limités, surtout côté CMS</li>\n</ul>\n<p>Une adoption prudente est donc recommandée sur des projets critiques.</p>\n<hr>\n<h3>3. Gestion du cache et des états</h3>\n<p>Drupal repose historiquement sur un <strong>modèle stateless</strong> et une <strong>stratégie de cache avancée</strong>.</p>\n<p>Le mode persistant de FrankenPHP peut introduire :</p>\n<ul>\n<li>Des <strong>effets de bord</strong> dans la gestion des services ou utilisateurs  </li>\n<li>Des <strong>incohérences de cache</strong> si l’état applicatif n’est pas bien géré  </li>\n</ul>\n<p>Une <strong>bonne maîtrise de Drupal internals</strong> est essentielle avant d’aller plus loin.</p>\n<hr>\n<h2>Cas d’usage recommandés</h2>\n<p>FrankenPHP peut être intéressant pour :</p>\n<ul>\n<li><strong>Environnements de développement ou de test</strong>  </li>\n<li><strong>Proof of Concept (PoC)</strong>  </li>\n<li><strong>Projets internes</strong> ou sans contrainte de haute disponibilité  </li>\n<li><strong>Expérimentations sur la performance PHP</strong></li>\n</ul>\n<p>Idéal pour explorer la nouvelle génération d’exécution PHP.</p>\n<hr>\n<h2>Cas à éviter (pour l’instant)</h2>\n<p>À ce stade, mieux vaut éviter FrankenPHP pour :</p>\n<ul>\n<li>Des <strong>sites critiques en production</strong>  </li>\n<li>Des <strong>environnements à haute disponibilité</strong>  </li>\n<li>Des <strong>architectures complexes</strong> ou fortement intégrées</li>\n</ul>\n<p>La prudence reste de mise tant que l’écosystème n’a pas mûri.</p>\n<hr>\n<h2>Comparaison rapide</h2>\n<table>\n<thead>\n<tr>\n<th>Critère</th>\n<th>Stack classique (FPM)</th>\n<th>FrankenPHP</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Complexité</strong></td>\n<td>Élevée</td>\n<td>Faible</td>\n</tr>\n<tr>\n<td><strong>Maturité</strong></td>\n<td>Très élevée</td>\n<td>Faible</td>\n</tr>\n<tr>\n<td><strong>Performance</strong></td>\n<td>Bonne</td>\n<td>Potentiellement meilleure</td>\n</tr>\n<tr>\n<td><strong>Risque</strong></td>\n<td>Faible</td>\n<td>Plus élevé</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>Conclusion</h2>\n<p><strong>FrankenPHP</strong> ouvre une voie prometteuse pour l’écosystème PHP :<br>\nmoins de couches, plus de performance et une expérience développeur modernisée.</p>\n<p>Pour <strong>Drupal</strong>, la technologie est encore en phase d’exploration.<br>\nC’est un excellent terrain d’expérimentation, mais pas encore une solution de production stable.</p>\n<p>Les agences et développeurs ont tout intérêt à <strong>tester dès maintenant</strong> FrankenPHP,<br>\nà <strong>comprendre ses limites</strong> et à <strong>préparer l’avenir</strong> des déploiements PHP simplifiés.</p>","excerpt":"L’écosystème PHP évolue rapidement, notamment sur la partie exécution et performance. De nouvelles approches voient le jour pour simplifier le déploiement et…","frontmatter":{"date":"2026-03-18","metaDate":"2026-03-18","title":"Exécuter Drupal avec FrankenPHP : ce qu’il faut savoir","tags":["Drupal","PHP","FrankenPHP","Performance","Infrastructure","DevOps"],"path":"/running-drupal-with-frankenphp","cover":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAAHeV37IAAAACXBIWXMAAAPoAAAD6AG1e1JrAAADdElEQVQ4yyWU+0+bZRTH339DJ5e+LbQvbSn0foW266B0Kx1jrJFLhaFTZ1Qys0TiFMaAAuVWCki5ZoYN53Q68QI6ko1Ff9myZLofSPxjPp52Pzx58+Sc53nO+X6+51XeOPUFVYZJtMYCimoaZ3jmKTZnFuXNyhH0phyKK/M3sdSOhGtHCV95RvfQc/zJB3iavy6lfYWxMY/ONI3eModOkyOV+gkq1XH0sjGY56m1zqH4z6wT6tin+cKvNMV38cdWUJyJPTwSiCTv0nquiDskdVTob6Grm6XaOENt4xKVholScVnivY9wRO9gtK9Q27CCaimguTawBnbovPIXrtiePK5+ieX8n6SHT+j+/AVXx/4hOfgYV2SNjsvbJPt2cDfNouiME9RYcxhtOWz+AoG2Hal0hhpzFt+ZRVxNCzT6llBOVY1QobvFW9U3pZZJVOlVFWkMdXPl9my+IiUdFKt/k7a+Iyn6dX0G2zKqtYAteJuW9AGJzBEm+zKKO7hA6O0DvO0/cnbgCS3dR/jOPiTV/wOeUJFUZlfEH5cbXTkCmedEP3xF/7UD+odf4E/c5VzPKoPD39B6KS/8xlDqvXlCA0+xd/7G+fQW7T33aUrsMnj1e0leIhpfx+oUDAZLDq1hHqs7jzNSxBtdl6cm8UQWafBNEY5vomqT0nX1KAYBp5pzZRIV+nGqpXNjw6IQL1BVmy0rIrgm0JyrNLc/wB3dlYRlOZCjSpZOE4mseYmvYXZviCqrZWU0xxp1zqKwv0fv0DPa33lEvW8TvXm2ZLQRzPYczvAWnrb7uFrulRGbfdtYZJWQW7xbOKN7uOUC5+lvCST3iaUPOd31O02pfcIXHuIXlxnM0yh64ygO/yzB9C9EPjmhOn6M1v6EaM8Bne8fMXjjFYmBx0SFUbjrkMjFn0j1bouIy3S9t06qb4VkzyaecJ7SkIjBb1LTuIAvc0zrtf9IfPwv8aETOj895oPrP3Mj/5Lrsy+59NEfhBJbBETUzsx3JLrk+24BVzCPw1fAHVzC6ZsrVTiGxSE+FIwWTwF7dBN7sIA3vERQ0F3+7JBYxx00cY/VvYrFPk/i4jbxjg3pbAp3YIFgrIjZMS90yyMoM2TMiqAzrwmapmSmxNy2+fJe1abL5jc1CCDLjOg0JT+BOYz1OTkzXbZAKa7WTVOax/8BqZQYMC6EWMkAAAAASUVORK5CYII=","aspectRatio":1.5,"src":"/static/d96a80029cf894c7a0b328b11f4d2c83/4dd3f/frankenphp-drupal.png","srcSet":"/static/d96a80029cf894c7a0b328b11f4d2c83/4f634/frankenphp-drupal.png 480w,\n/static/d96a80029cf894c7a0b328b11f4d2c83/3dcd6/frankenphp-drupal.png 960w,\n/static/d96a80029cf894c7a0b328b11f4d2c83/4dd3f/frankenphp-drupal.png 1536w","srcWebp":"/static/d96a80029cf894c7a0b328b11f4d2c83/0bc1e/frankenphp-drupal.webp","srcSetWebp":"/static/d96a80029cf894c7a0b328b11f4d2c83/bc3bf/frankenphp-drupal.webp 480w,\n/static/d96a80029cf894c7a0b328b11f4d2c83/39337/frankenphp-drupal.webp 960w,\n/static/d96a80029cf894c7a0b328b11f4d2c83/0bc1e/frankenphp-drupal.webp 1536w","sizes":"(max-width: 1536px) 100vw, 1536px"},"resize":{"src":"/static/d96a80029cf894c7a0b328b11f4d2c83/d8210/frankenphp-drupal.png"}}}}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"pathSlug":"/running-drupal-with-frankenphp","locale":"fr","prev":{"fields":{"locale":"fr"},"frontmatter":{"path":"/drupal-task-automation-imports-etl-crm","title":"Automatisation des tâches avec Drupal : imports, ETL léger et intégrations CRM","tags":["Drupal 10","Drupal","Automation","ETL","API","CRM","ERP"]}},"next":{"fields":{"locale":"fr"},"frontmatter":{"path":"/drupal-ai-content-transformation","title":"Pourquoi l’IA va transformer l’expérience éditoriale dans Drupal","tags":["Drupal 11","IA","Contribution","AI"]}}}}}