2020-02-24 19:36:42 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
2022-11-30 17:42:16 +01:00
|
|
|
term_proc() {
|
|
|
|
echo "Entrypoint FPM caught SIGTERM signal!"
|
|
|
|
echo "Killing process $master_pid"
|
|
|
|
kill -TERM "$master_pid" 2>/dev/null
|
|
|
|
}
|
|
|
|
|
|
|
|
trap term_proc SIGTERM
|
|
|
|
|
|
|
|
change_php_vars() {
|
2024-10-28 12:37:17 +01:00
|
|
|
ESCAPED=$(printf '%s\n' "$REDIS_PASSWORD" | sed -e 's/[\/&]/\\&/g')
|
2020-02-24 19:36:42 +01:00
|
|
|
for FILE in /etc/php/*/fpm/php.ini
|
2022-11-30 17:42:16 +01:00
|
|
|
do
|
2020-02-24 19:36:42 +01:00
|
|
|
[[ -e $FILE ]] || break
|
2024-08-25 13:32:36 +02:00
|
|
|
echo "Configure PHP | Setting 'memory_limit = ${PHP_MEMORY_LIMIT}'"
|
2024-08-24 14:50:19 +02:00
|
|
|
sed -i "s/memory_limit = .*/memory_limit = ${PHP_MEMORY_LIMIT}/" "$FILE"
|
2024-08-25 13:32:36 +02:00
|
|
|
echo "Configure PHP | Setting 'max_execution_time = ${PHP_MAX_EXECUTION_TIME}'"
|
2024-08-24 14:50:19 +02:00
|
|
|
sed -i "s/max_execution_time = .*/max_execution_time = ${PHP_MAX_EXECUTION_TIME}/" "$FILE"
|
2024-08-25 13:32:36 +02:00
|
|
|
echo "Configure PHP | Setting 'upload_max_filesize = ${PHP_UPLOAD_MAX_FILESIZE}'"
|
2024-08-24 14:50:19 +02:00
|
|
|
sed -i "s/upload_max_filesize = .*/upload_max_filesize = ${PHP_UPLOAD_MAX_FILESIZE}/" "$FILE"
|
2024-08-25 13:32:36 +02:00
|
|
|
echo "Configure PHP | Setting 'post_max_size = ${PHP_POST_MAX_SIZE}'"
|
2024-08-24 14:50:19 +02:00
|
|
|
sed -i "s/post_max_size = .*/post_max_size = ${PHP_POST_MAX_SIZE}/" "$FILE"
|
2024-08-25 13:32:36 +02:00
|
|
|
echo "Configure PHP | Setting 'max_input_time = ${PHP_MAX_INPUT_TIME}'"
|
|
|
|
sed -i "s/max_input_time = .*/max_input_time = ${PHP_MAX_INPUT_TIME}/" "$FILE"
|
2023-05-12 14:42:23 +02:00
|
|
|
sed -i "s/session.save_handler = .*/session.save_handler = redis/" "$FILE"
|
2024-10-28 12:37:17 +01:00
|
|
|
echo "Configure PHP | Setting 'session.save_path = '$(echo $REDIS_HOST | grep -E '^\w+://' || echo tcp://$REDIS_HOST):$REDIS_PORT?auth=${ESCAPED}'"
|
|
|
|
sed -i "s|.*session.save_path = .*|session.save_path = '$(echo $REDIS_HOST | grep -E '^\w+://' || echo tcp://$REDIS_HOST):$REDIS_PORT?auth=${ESCAPED}'|" "$FILE"
|
2024-07-18 16:36:20 +02:00
|
|
|
sed -i "s/session.sid_length = .*/session.sid_length = 64/" "$FILE"
|
|
|
|
sed -i "s/session.use_strict_mode = .*/session.use_strict_mode = 1/" "$FILE"
|
2020-02-24 19:36:42 +01:00
|
|
|
done
|
2024-12-06 15:30:32 +01:00
|
|
|
|
|
|
|
for FILE in /etc/php/*/fpm/pool.d/www.conf
|
|
|
|
do
|
|
|
|
[[ -e $FILE ]] || break
|
|
|
|
echo "Configure PHP | Setting 'pm.max_children = ${PHP_FCGI_CHILDREN}'"
|
|
|
|
sed -i -E "s/;?pm.max_children = .*/pm.max_children = ${PHP_FCGI_CHILDREN}/" "$FILE"
|
|
|
|
echo "Configure PHP | Setting 'pm.start_servers = ${PHP_FCGI_START_SERVERS}'"
|
|
|
|
sed -i -E "s/;?pm.start_servers = .*/pm.start_servers = ${PHP_FCGI_START_SERVERS}/" "$FILE"
|
|
|
|
echo "Configure PHP | Setting 'pm.(min|max)_spare_servers = ${PHP_FCGI_START_SERVERS}'"
|
|
|
|
sed -i -E "s/;?pm.min_spare_servers = .*/pm.min_spare_servers = ${PHP_FCGI_SPARE_SERVERS}/" "$FILE"
|
|
|
|
if [[ "$PHP_FCGI_START_SERVERS" -gt "$PHP_FCGI_SPARE_SERVERS" ]]; then
|
|
|
|
sed -i -E "s/;?pm.max_spare_servers = .*/pm.max_spare_servers = ${PHP_FCGI_START_SERVERS}/" "$FILE"
|
|
|
|
else
|
|
|
|
sed -i -E "s/;?pm.max_spare_servers = .*/pm.max_spare_servers = ${PHP_FCGI_SPARE_SERVERS}/" "$FILE"
|
|
|
|
fi
|
|
|
|
echo "Configure PHP | Setting 'pm.max_requests = ${PHP_FCGI_MAX_REQUESTS}'"
|
|
|
|
sed -i -E "s/;?pm.max_requests = .*/pm.max_requests = ${PHP_FCGI_MAX_REQUESTS}/" "$FILE"
|
|
|
|
if [[ "$FASTCGI_STATUS_LISTEN" != "" ]]; then
|
|
|
|
echo "Configure PHP | Setting 'pm.status_path = /status'"
|
|
|
|
sed -i -E "s/;?pm.status_path = .*/pm.status_path = \/status/" "$FILE"
|
|
|
|
echo "Configure PHP | Setting 'pm.status_path = /run/php/php-fpm-status.sock'"
|
|
|
|
sed -i -E "s/;?pm.status_listen = .*/pm.status_listen = \/run\/php\/php-fpm-status.sock/" "$FILE"
|
|
|
|
else
|
|
|
|
echo "Configure PHP | Disabling 'pm.status_path'"
|
|
|
|
sed -i -E "s/^pm.status_path = /;pm.status_path = /" "$FILE"
|
|
|
|
echo "Configure PHP | Disabling 'pm.status_listen'"
|
|
|
|
sed -i -E "s/^pm.status_listen =/;pm.status_listen =/" "$FILE"
|
|
|
|
fi
|
|
|
|
done
|
2020-02-24 19:36:42 +01:00
|
|
|
}
|
|
|
|
|
2023-04-13 16:02:02 +02:00
|
|
|
echo "Configure PHP | Change PHP values ..." && change_php_vars
|
2022-11-30 17:42:16 +01:00
|
|
|
|
2023-04-13 16:02:02 +02:00
|
|
|
echo "Configure PHP | Starting PHP FPM"
|
2024-09-16 12:48:39 +02:00
|
|
|
/usr/sbin/php-fpm8.2 -R -F & master_pid=$!
|
2020-02-24 19:36:42 +01:00
|
|
|
|
2022-11-30 17:42:16 +01:00
|
|
|
# Wait for it
|
|
|
|
wait "$master_pid"
|