Files
2026-05-14 10:16:02 +02:00

2.2 KiB

Notes de développement

Structure du projet (serveur)

/var/www/lan.acegrp.varlog/
├── public/
│   ├── index.php       # Point d'entrée
│   ├── route.php       # Routeur (actions GET/POST)
│   └── assets/         # CSS, JS, uploads
├── templates/          # Vues PHP (incluses via extract() + include)
│   ├── layout.php
│   ├── post_form.php
│   └── post_view.php
├── src/
│   ├── db.php          # Connexion PDO PostgreSQL
│   ├── PostManager.php
│   └── FileManager.php
├── config/
│   └── config.php      # Charge .env, définit les constantes DB
└── docs/

Conventions templates

Les templates reçoivent leurs variables via extract() depuis route.php. Toute variable optionnelle (non transmise dans tous les contextes) doit utiliser ?? pour éviter un Undefined variable warning :

// Bon
$dateValue = $published_at ?? date('Y-m-d\TH:i');
<?= ($published ?? false) ? 'checked' : '' ?>

// À éviter
<?= $published ? 'checked' : '' ?>   // Warning si create (pas d'édition)

Permissions serveur

PHP-FPM tourne en www-data. Les fichiers sensibles (.env) appartiennent à cedrix:www-data 640. Voir PROJET.md § Permissions serveur.

Configuration PHP-FPM recommandée

Sur un serveur 2 GB RAM, chaque worker PHP-FPM consomme ~40 MB. Pool recommandé (/etc/php/8.3/fpm/pool.d/<site>.conf) :

pm                   = dynamic
pm.max_children      = 20
pm.start_servers     = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 8

Symptôme de saturation : server reached pm.max_children dans /var/log/php8.3-fpm.log.

Protection contre les bots (anciennes URLs DokuWiki)

Les anciens sites migrés depuis DokuWiki reçoivent du trafic de bots sur /lib/, /doku.php, etc. Utiliser RedirectMatch 410 dans Apache plutôt que Require all denied — le 410 "Gone" est un signal définitif qui pousse les moteurs à retirer ces URLs de leur index.

# Dans le VirtualHost
RedirectMatch 410 "^/(lib|doku\.php|feed\.php|install\.php|_media|_detail)(/.*)?$"

Un 403 ("accès refusé") est ignoré par les bots sérieux qui continuent de réessayer. Un 410 ("disparu définitivement") les fait arrêter.