Dotclear + php-fpm + Caddy

J’ai déjà dis ça il y a 4 ans, mais c’est réparé ! Je m’arrachais les cheveux sur Dotclear qui affichait la page d’accueil quelle que soit l’URI appelée.

Mon installation actuelle utilise le serveur web Caddy et php-fpm, côté Caddy, ma configuration ressemble à ça :

dotclear-devlog.saymonz.net {
    root * /.../dotclear/public
    php_fastcgi unix//run/php-fpm.sock
    file_server
}

Cette configuration, minimaliste, fonctionne parfaitement pour d’autres apps qui routent l’ensemble des requêtes via index.php, notamment WordPress. En effet chez Caddy, la directive php_fastcgi redirige automatiquement les requêtes appelant des chemins inexistants vers le fichier index.php (documentation).

Après m’être arraché les cheveux quelque temps, j’ai fini par remarquer que la variable PATH_INFO, censée contenir la partie de l’URI après index.php, arrive vide dans Dotclear, Caddy ne la remplissant que s’il y a effectivement .php dans l’URL, ce que je souhaite éviter pour des raisons esthétiques.

Pour autant, comme mentionné plus haut, d’autres apps fonctionnent malgré cela (et j’ai bien vérifié, pas de PATH_INFO chez elles non plus).

Je ne suis pas certain de toutes les implications, mais j’ai fini par ajouter cette ligne en tête du fichier index.php public pour manuellement extraire le PATH_INFO depuis REQUEST_URI :

$_SERVER['PATH_INFO'] = urldecode(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));

Bon après, on va pas se mentir, c’est en friche ici…

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Ajouter un rétrolien

URL de rétrolien : https://dotclear-devlog.saymonz.net/trackback/459

Haut de page