; EK-DOS-WEB: eigener php-fpm-Pool.
;
; Ablage:  /etc/php/8.5/fpm/pool.d/ekdos.conf
; Prüfen:  php-fpm8.5 -t && systemctl restart php8.5-fpm
;
; Ein eigener Pool statt des mitgelieferten www-Pools: eigener Socket, eigener
; Benutzer, eigene Grenzen. Ein anderer Dienst auf demselben Server kann EK-DOS
; damit weder aushungern noch dessen Umgebung mitlesen.

[ekdos]

user  = ekdos
group = ekdos

listen       = /run/php/ekdos.sock
listen.owner = www-data
listen.group = www-data
listen.mode  = 0660

; Zwei Personen im Büro, dazu die 20-Sekunden-Abfrage der Ticketliste.
; ondemand hält keine ungenutzten Prozesse vor.
pm                   = ondemand
pm.max_children      = 12
pm.process_idle_timeout = 30s
pm.max_requests      = 500

; Aufrufe an n8n haben ihr eigenes Zeitlimit (N8N_TIMEOUT). Dieses hier ist die
; Notbremse darüber, damit ein hängender Aufruf keinen Prozess dauerhaft bindet.
request_terminate_timeout = 60s

; Fehler gehen in den Fehlerkanal, nicht in die Antwort.
php_admin_value[display_errors]   = Off
php_admin_flag[log_errors]        = On
php_admin_value[error_log]        = /var/log/php/ekdos-error.log
php_admin_value[memory_limit]     = 256M
php_admin_value[upload_max_filesize] = 32M
php_admin_value[post_max_size]    = 32M

; Das Backend liest und schreibt nur in seinem eigenen Verzeichnis.
php_admin_value[open_basedir] = /var/www/ekdos/backend:/tmp

; Es werden keine PHP-Sitzungen verwendet -- die Sitzung liegt in Redis.
php_admin_value[session.save_handler] = files
php_admin_flag[session.auto_start]    = Off

; Opcache: der Quelltext ändert sich nur beim Ausrollen.
php_admin_flag[opcache.enable]           = On
php_admin_value[opcache.validate_timestamps] = 0
php_admin_value[opcache.max_accelerated_files] = 10000
