# deploy/php-fpm-kapitano.conf
# PHP-FPM pool for the Kapitano API.
# Install to: /etc/php-fpm.d/kapitano.conf    (Alma/RHEL + Remi PHP 8.3)
#
# Requires: a dedicated system user "kapitano" that owns /var/www/kapitano/api
#   useradd -r -s /sbin/nologin -d /var/www/kapitano kapitano
#   mkdir -p /var/www/kapitano/api && chown -R kapitano:kapitano /var/www/kapitano

[kapitano]
user  = kapitano
group = kapitano

listen = /run/php-fpm/kapitano.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

pm = dynamic
pm.max_children         = 20
pm.start_servers        = 4
pm.min_spare_servers    = 2
pm.max_spare_servers    = 8
pm.max_requests         = 500

request_terminate_timeout = 120
request_slowlog_timeout   = 10s
slowlog                   = /var/log/php-fpm/kapitano-slow.log
catch_workers_output      = yes

; ---------------------------------------------------------------- limits
php_admin_value[memory_limit]       = 256M
php_admin_value[max_execution_time] = 120
php_admin_value[max_input_time]     = 60
php_admin_value[upload_max_filesize] = 20M
php_admin_value[post_max_size]       = 20M
php_admin_flag[log_errors]           = on
php_admin_value[display_errors]      = Off

; ---------------------------------------------------------------- OPcache
; Balanced for an API: modest memory, revalidate_interval high in production.
php_admin_flag[opcache.enable]                  = On
php_admin_value[opcache.memory_consumption]     = 128
php_admin_value[opcache.interned_strings_buffer] = 16
php_admin_value[opcache.max_accelerated_files]  = 20000
php_admin_value[opcache.revalidate_freq]        = 60
php_admin_value[opcache.validate_timestamps]    = 1
php_admin_value[opcache.save_comments]          = 1
php_admin_value[opcache.fast_shutdown]          = 1

; ---------------------------------------------------------------- realpath cache
php_admin_value[realpath_cache_size] = 4096K
php_admin_value[realpath_cache_ttl] = 600