; Wakdo - pool PHP-FPM (surcharge le pool www par defaut) ; Charge en dernier via prefixe zz- pour avoir priorite sur www.conf officiel. [www] ; --- Identite utilisateur --- ; L'image officielle cree l'utilisateur www-data (UID 82 en Alpine). ; On reste sur le default : on ne change pas l'UID pour eviter les soucis ; de permissions sur les uploads (volume wakdo_uploads geré par Docker). user = www-data group = www-data ; --- Socket d'ecoute --- ; TCP pour que wakdo-web (Apache) puisse reverse-proxy FastCGI via le reseau ; interne. Socket Unix serait plus performant mais exigerait un volume partage ; entre conteneurs, plus complexe a orchestrer. listen = 0.0.0.0:9000 ; Le socket reseau est volontairement ouvert. La securite est assuree par ; le fait que wakdo-app n'est attache qu'au reseau interne wakdo_internal ; (non expose a l'hote, non expose au proxy Traefik). Seul wakdo-web peut ; y acceder. ; ; listen.allowed_clients est commente : PHP-FPM 8.3 ne reconnait pas la ; valeur 'any' (erreur "Wrong IP address 'any' in listen.allowed_clients, ; There are no allowed addresses"). Quand la directive est absente, ; PHP-FPM accepte toutes les connexions, ce qui est equivalent a 'any' ; et acceptable ici puisque le reseau Docker isole deja l'acces. ; listen.allowed_clients = ; --- Process manager (pm) --- ; Mode dynamic : ajuste le nombre de workers entre min et max selon la charge. ; Valeurs adaptees a une borne de commande en restauration rapide : pics courts ; a l'heure du repas, faible charge le reste du temps. ; Pour un VPS 2 vCPU / 4 Go RAM : chaque worker PHP consomme ~30-60 Mo. ; Avec max_children=10, pire cas ~600 Mo reserve a PHP, marge pour MariaDB. pm = dynamic pm.max_children = 10 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 5 pm.max_requests = 500 ; --- Status et ping pour monitoring / healthcheck --- ; /fpm-status et /fpm-ping ne sont accessibles qu'au sein du conteneur ; (le vhost Apache n'exposera pas ces endpoints publiquement). pm.status_path = /fpm-status ping.path = /fpm-ping ping.response = pong ; --- Logs --- ; Redirection vers stderr du conteneur : agregation par docker logs. access.log = /proc/self/fd/2 access.format = "%R - %u %t \"%m %r\" %s" ; Logs d'erreurs PHP : deja rediriges via error_log dans php.ini. catch_workers_output = yes decorate_workers_output = no