From 7d9c9671a478abd66879441a6aef122c16f693d4 Mon Sep 17 00:00:00 2001 From: Christoph Date: Tue, 14 Sep 2021 18:28:51 +0200 Subject: [PATCH] Support of setting additional FPM Pool Definitions also if a configiration file from prior installation exists and will be taken. --- mod_php_install.sh | 84 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 74 insertions(+), 10 deletions(-) diff --git a/mod_php_install.sh b/mod_php_install.sh index cf0a0eb..d761245 100755 --- a/mod_php_install.sh +++ b/mod_php_install.sh @@ -771,7 +771,6 @@ if $WITH_PHP_FPM_SUPPORT ; then SET_UMASK=false fi - DEFAULT_FPM_POOL_START_SERVER=15 DEFAULT_FPM_POOL_MIN_SPARE=6 @@ -1292,7 +1291,7 @@ if [ -d "$PREFIX_PHP" ];then fi declare -a existing_fpm_definition_arr=() -#FPM_DEFAULT_POOL_DEFINITION_EXISTS=false +FPM_DEFAULT_POOL_DEFINITION_EXISTS=false if $WITH_PHP_FPM_SUPPORT ; then echo "" @@ -1303,8 +1302,7 @@ if $WITH_PHP_FPM_SUPPORT ; then for _file in $(ls $PREFIX_PHP.${_backup_date}/etc/fpm.d/*.conf) ; do if [[ "$(basename "$_file")" = "${FPM_DEFAULT_POOL}.php-fpm.conf" ]]; then - continue - #FPM_DEFAULT_POOL_DEFINITION_EXISTS=true + FPM_DEFAULT_POOL_DEFINITION_EXISTS=true fi existing_fpm_definition_arr+=("$(realpath "$_file")") done @@ -1315,8 +1313,7 @@ if $WITH_PHP_FPM_SUPPORT ; then for _file in $(ls /usr/local/php-${PHP_MAIN_VERSION}/etc/fpm.d/*.conf) ; do if [[ "$(basename "$_file")" = "${FPM_DEFAULT_POOL}.php-fpm.conf" ]]; then - continue - #FPM_DEFAULT_POOL_DEFINITION_EXISTS=true + FPM_DEFAULT_POOL_DEFINITION_EXISTS=true fi existing_fpm_definition_arr+=("$(realpath "$_file")") done @@ -2885,9 +2882,9 @@ EOF fi echononl "\tCreate php-fpm configuration file for pool \"${FPM_DEFAULT_POOL}\"" - #if $FPM_DEFAULT_POOL_DEFINITION_EXISTS ; then - # echo_skipped - #else + if $FPM_DEFAULT_POOL_DEFINITION_EXISTS ; then + echo_skipped + else cat < ${PREFIX_PHP}/etc/${FPM_POOL_CONF_DIR}/${FPM_DEFAULT_POOL}.php-fpm.conf ;;;;;;;;;;;;;;;;;;;; ; Pool Definitions ; @@ -3351,11 +3348,13 @@ EOF else echo_failed fi - #fi + fi # - Copy PHP FPM definitions from current installation to the new one. # - if [[ ${#existing_fpm_definition_arr[@]} -gt 0 ]] ; then + + echo "" for _file in "${existing_fpm_definition_arr[@]}" ; do echononl "\tTake existing PHP FPM definition '$(basename "$_file")' .." cp "$_file" "${PREFIX_PHP}/etc/${FPM_POOL_CONF_DIR}/" > /dev/null 2>&1 @@ -3365,6 +3364,71 @@ EOF echo_failed fi done + + + if $FPM_DEFAULT_POOL_DEFINITION_EXISTS && \ + [[ -f "${PREFIX_PHP}/etc/${FPM_POOL_CONF_DIR}/${FPM_DEFAULT_POOL}.php-fpm.conf" ]] ; then + + echo "" + key="pm.start_servers" + value="$FPM_POOL_START_SERVER" + echononl "\tPHP FPM Pool - Set Definition '${key}'.." + #perl -i -n -p -e "s#^(\s*${key}\s*=\s*)#\1${value}#" \ + # ${PREFIX_PHP}/etc/${FPM_POOL_CONF_DIR}/${FPM_DEFAULT_POOL}.php-fpm.conf + sed -i -E "s/^([[:blank:]]*${key}[[:blank:]]*=[[:blank:]]*).*/\1${value}/" \ + ${PREFIX_PHP}/etc/${FPM_POOL_CONF_DIR}/${FPM_DEFAULT_POOL}.php-fpm.conf + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fi + + key="pm.min_spare_servers" + value="$FPM_POOL_MIN_SPARE" + echononl "\tPHP FPM Pool - Set Definition '${key}'.." + sed -i -E "s/^([[:blank:]]*${key}[[:blank:]]*=[[:blank:]]*).*/\1${value}/" \ + ${PREFIX_PHP}/etc/${FPM_POOL_CONF_DIR}/${FPM_DEFAULT_POOL}.php-fpm.conf + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fi + + key="pm.max_spare_servers" + value="$FPM_POOL_MAX_SPARE" + echononl "\tPHP FPM Pool - Set Definition '${key}'.." + sed -i -E "s/^([[:blank:]]*${key}[[:blank:]]*=[[:blank:]]*).*/\1${value}/" \ + ${PREFIX_PHP}/etc/${FPM_POOL_CONF_DIR}/${FPM_DEFAULT_POOL}.php-fpm.conf + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fi + + key="pm.max_children" + value="$FPM_POOL_MAX_CHILDREN" + echononl "\tPHP FPM Pool - Set Definition '${key}'.." + sed -i -E "s/^([[:blank:]]*${key}[[:blank:]]*=[[:blank:]]*).*/\1${value}/" \ + ${PREFIX_PHP}/etc/${FPM_POOL_CONF_DIR}/${FPM_DEFAULT_POOL}.php-fpm.conf + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fi + + key="pm.max_requests" + value="$FPM_POOL_MAX_REQUESTS" + echononl "\tPHP FPM Pool - Set Definition '${key}'.." + sed -i -E "s/^([[:blank:]]*${key}[[:blank:]]*=[[:blank:]]*).*/\1${value}/" \ + ${PREFIX_PHP}/etc/${FPM_POOL_CONF_DIR}/${FPM_DEFAULT_POOL}.php-fpm.conf + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fi + echo "" + + fi fi