2023-04-05 07:53:20 -07:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
rm /etc/php-fpm.d/www.conf
|
|
|
|
|
|
2026-04-01 10:08:00 -07:00
|
|
|
FPM_LISTEN=${FPM_LISTEN:-/run/php-fpm/www.sock}
|
|
|
|
|
|
|
|
|
|
# Determine listen directive and ownership based on socket vs TCP
|
|
|
|
|
if echo "$FPM_LISTEN" | grep -q '/'; then
|
2026-04-01 13:04:53 -07:00
|
|
|
# Unix socket mode (standalone — Apache and FPM in same container)
|
2026-04-01 10:08:00 -07:00
|
|
|
listen_directive="$FPM_LISTEN"
|
|
|
|
|
listen_owner_block="listen.owner = apache
|
|
|
|
|
listen.group = apache"
|
2026-04-01 13:04:53 -07:00
|
|
|
env_block=""
|
2026-04-01 10:08:00 -07:00
|
|
|
else
|
2026-04-01 13:04:53 -07:00
|
|
|
# TCP port mode (shared httpd — FPM in separate container)
|
2026-04-01 10:08:00 -07:00
|
|
|
listen_directive="0.0.0.0:${FPM_LISTEN}"
|
|
|
|
|
listen_owner_block=""
|
2026-04-01 13:04:53 -07:00
|
|
|
# Override DOCUMENT_ROOT so PHP plugins (e.g., WordFence) that use
|
|
|
|
|
# $_SERVER['DOCUMENT_ROOT'] find files at the FPM container's path,
|
|
|
|
|
# not the shared httpd's /mnt/users/ mount path.
|
|
|
|
|
env_block="env[DOCUMENT_ROOT] = /home/$user/public_html"
|
2026-04-01 10:08:00 -07:00
|
|
|
fi
|
|
|
|
|
|
2023-04-05 07:53:20 -07:00
|
|
|
cat <<EOF > /etc/php-fpm.d/$user.conf
|
|
|
|
|
|
|
|
|
|
[$user]
|
|
|
|
|
|
|
|
|
|
user = $user
|
|
|
|
|
group = $user
|
2026-04-01 10:08:00 -07:00
|
|
|
listen = ${listen_directive}
|
|
|
|
|
${listen_owner_block}
|
2023-04-05 07:53:20 -07:00
|
|
|
|
2026-02-25 18:52:15 -08:00
|
|
|
pm = ${PHP_FPM_PM}
|
|
|
|
|
pm.max_children = ${PHP_FPM_MAX_CHILDREN}
|
|
|
|
|
pm.max_requests = ${PHP_FPM_MAX_REQUESTS}
|
|
|
|
|
pm.process_idle_timeout = ${PHP_FPM_PROCESS_IDLE_TIMEOUT}
|
|
|
|
|
|
|
|
|
|
; Settings used when pm = dynamic (fallback if user overrides FPM_PM)
|
|
|
|
|
pm.start_servers = ${PHP_FPM_START_SERVERS}
|
|
|
|
|
pm.min_spare_servers = ${PHP_FPM_MIN_SPARE}
|
|
|
|
|
pm.max_spare_servers = ${PHP_FPM_MAX_SPARE}
|
2023-04-11 13:23:14 -07:00
|
|
|
|
2026-04-01 10:08:00 -07:00
|
|
|
; Health check endpoints
|
|
|
|
|
ping.path = /fpm-ping
|
|
|
|
|
ping.response = pong
|
|
|
|
|
pm.status_path = /fpm-status
|
|
|
|
|
|
|
|
|
|
slowlog = /home/$user/logs/php-fpm/slowlog
|
2023-04-11 13:23:14 -07:00
|
|
|
request_slowlog_timeout = 3s
|
2023-04-05 07:53:20 -07:00
|
|
|
|
2025-07-31 10:21:15 -07:00
|
|
|
php_admin_value[error_log] = /home/$user/logs/php-fpm/error.log
|
2023-04-05 07:53:20 -07:00
|
|
|
php_admin_flag[log_errors] = on
|
|
|
|
|
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
|
2026-04-01 13:04:53 -07:00
|
|
|
${env_block}
|
2023-04-05 07:53:20 -07:00
|
|
|
|
|
|
|
|
EOF
|
|
|
|
|
|
2026-02-25 18:52:15 -08:00
|
|
|
exit 0
|