mod_php_install.sh: add timeout parameter.
This commit is contained in:
parent
f9f247aa1d
commit
0d94d23fe3
@ -31,58 +31,6 @@ _LEGACY_SQL_FUNCTION_SUPPORT=no
|
||||
_SYMLINK_PHP=no
|
||||
_SYMLINK_PHP_MAIN_VERSION=yes
|
||||
|
||||
_MEMORY_LIMIT="512M"
|
||||
_MAX_EXECUTION_TIME=180
|
||||
_MAX_INPUT_TIME=180
|
||||
_UPLOAD_MAX_FILESIZE="128M"
|
||||
_POST_MAX_SIZE="128M"
|
||||
|
||||
_ZLIB_OUTPUT_COMPRESSION="On"
|
||||
|
||||
# Default Settings opcache extension
|
||||
#
|
||||
DEFAULT_OPCACHE_ENABLE=1
|
||||
DEFAULT_OPCACHE_ENABLE_CLI=1
|
||||
#DEFAULT_OPCACHE_MEMORY_CONSUMPTION=128
|
||||
DEFAULT_OPCACHE_MEMORY_CONSUMPTION=512
|
||||
DEFAULT_OPCACHE_INTERNED_STRINGS_BUFFER=48
|
||||
#DEFAULT_OPCACHE_MAX_ACCELERATED_FILES=10000
|
||||
DEFAULT_OPCACHE_MAX_ACCELERATED_FILES=60000
|
||||
#DEFAULT_OPCACHE_VALIDATE_TIMESTAMPS=1
|
||||
DEFAULT_OPCACHE_VALIDATE_TIMESTAMPS=0
|
||||
|
||||
DEFAULT_OPCACHE_CONSISTENCY_CHECKS=0
|
||||
|
||||
DEFAULT_OPCACHE_REVALIDATE_FREQ=60
|
||||
if [[ -d "/var/log/apache2" ]] ; then
|
||||
DEFAULT_OPCACHE_ERROR_LOG="/var/log/apache2/opcache_errors.log"
|
||||
elif [[ -d "/var/log/nginx" ]]; then
|
||||
DEFAULT_OPCACHE_ERROR_LOG="/var/log/nginx/opcache_errors.log"
|
||||
else
|
||||
DEFAULT_OPCACHE_ERROR_LOG=""
|
||||
fi
|
||||
|
||||
# Default Settings apc extension
|
||||
#
|
||||
DEFAULT_APC_ENABLE_CLI=1
|
||||
DEFAULT_APC_SHM_SIZE="32M"
|
||||
DEFAULT_APC_STAT=1
|
||||
DEFAULT_APCU_STAT=1
|
||||
DEFAULT_APC_BY_DEFAULT=1
|
||||
DEFAULT_APC_SMART=0
|
||||
|
||||
_SKIP_UPDATE_DB=yes
|
||||
|
||||
_CRONTAB_BAKUP_FILE="$(mktemp)"
|
||||
|
||||
_VSERVER_GUEST=no
|
||||
|
||||
# Array oft existing FPM pool definitions
|
||||
#
|
||||
declare -a php_fpm_pool_definition_file_arr=()
|
||||
|
||||
_backup_date="$(date +%Y%m%d-%H%M)"
|
||||
|
||||
|
||||
## --- Some functions
|
||||
## ---
|
||||
@ -190,6 +138,103 @@ detect_os_1 () {
|
||||
## ---
|
||||
## --- END: functions
|
||||
|
||||
## --- Some (default) Variables
|
||||
## ---
|
||||
|
||||
_MEMORY_LIMIT="512M"
|
||||
|
||||
# MAX_EXECUTION_TIME
|
||||
#
|
||||
# Try to set an adequate default value
|
||||
#
|
||||
declare -i PROXY_TIMEOUT=0
|
||||
if [[ -f "/usr/local/apache2/conf/httpd.conf" ]]; then
|
||||
_HTTPD_CONF_FILE="/usr/local/apache2/conf/httpd.conf"
|
||||
elif [[ -f "/etc/apache2/apache2.conf" ]]; then
|
||||
_HTTPD_CONF_FILE="/etc/apache2/apache2.conf"
|
||||
else
|
||||
_HTTPD_CONF_FILE=''
|
||||
fi
|
||||
|
||||
if [[ -f "${_HTTPD_CONF_FILE}" ]] && $(grep -q -i -E "^\s*Timeout\s+" "${_HTTPD_CONF_FILE}") ; then
|
||||
_TIMEOUT="$(grep -i -E "^\s*timeout\s+" "${_HTTPD_CONF_FILE}"| awk '{print$2}' | head -1)"
|
||||
else
|
||||
_TIMEOUT=60
|
||||
fi
|
||||
if [[ -f "${_HTTPD_CONF_FILE}" ]] && $(grep -q -i -E "^\s*ProxyTimeout\s+" "${_HTTPD_CONF_FILE}") ; then
|
||||
PROXY_TIMEOUT="$(grep -i -E "^\s*ProxyTimeout\s+" "${_HTTPD_CONF_FILE}"| awk '{print$2}' | head -1)"
|
||||
else
|
||||
PROXY_TIMEOUT=${_TIMEOUT}
|
||||
fi
|
||||
|
||||
_MAX_EXECUTION_TIME=180
|
||||
if $(is_int "$PROXY_TIMEOUT") ; then
|
||||
|
||||
if [[ $PROXY_TIMEOUT -gt 180 ]] ; then
|
||||
_MAX_EXECUTION_TIME=$PROXY_TIMEOUT
|
||||
fi
|
||||
else
|
||||
PROXY_TIMEOUT=$_MAX_EXECUTION_TIME
|
||||
fi
|
||||
|
||||
APACHE_FCGID_MAX_REQUESTS_PER_PROCESS=''
|
||||
if [[ -f "${_HTTPD_CONF_FILE}" ]] && $(grep -q -i -E "^\s*FcgidMaxRequestsPerProcess\s+" "${_HTTPD_CONF_FILE}") ; then
|
||||
APACHE_FCGID_MAX_REQUESTS_PER_PROCESS="$(grep -i -E "^\s*FcgidMaxRequestsPerProcess\s+" "${_HTTPD_CONF_FILE}"| awk '{print$2}' | head -1)"
|
||||
fi
|
||||
|
||||
|
||||
_MAX_INPUT_TIME=180
|
||||
_UPLOAD_MAX_FILESIZE="128M"
|
||||
_POST_MAX_SIZE="128M"
|
||||
|
||||
_ZLIB_OUTPUT_COMPRESSION="On"
|
||||
|
||||
# Default Settings opcache extension
|
||||
#
|
||||
DEFAULT_OPCACHE_ENABLE=1
|
||||
DEFAULT_OPCACHE_ENABLE_CLI=1
|
||||
#DEFAULT_OPCACHE_MEMORY_CONSUMPTION=128
|
||||
DEFAULT_OPCACHE_MEMORY_CONSUMPTION=512
|
||||
DEFAULT_OPCACHE_INTERNED_STRINGS_BUFFER=48
|
||||
#DEFAULT_OPCACHE_MAX_ACCELERATED_FILES=10000
|
||||
DEFAULT_OPCACHE_MAX_ACCELERATED_FILES=60000
|
||||
#DEFAULT_OPCACHE_VALIDATE_TIMESTAMPS=1
|
||||
DEFAULT_OPCACHE_VALIDATE_TIMESTAMPS=0
|
||||
|
||||
DEFAULT_OPCACHE_CONSISTENCY_CHECKS=0
|
||||
|
||||
DEFAULT_OPCACHE_REVALIDATE_FREQ=60
|
||||
if [[ -d "/var/log/apache2" ]] ; then
|
||||
DEFAULT_OPCACHE_ERROR_LOG="/var/log/apache2/opcache_errors.log"
|
||||
elif [[ -d "/var/log/nginx" ]]; then
|
||||
DEFAULT_OPCACHE_ERROR_LOG="/var/log/nginx/opcache_errors.log"
|
||||
else
|
||||
DEFAULT_OPCACHE_ERROR_LOG=""
|
||||
fi
|
||||
|
||||
# Default Settings apc extension
|
||||
#
|
||||
DEFAULT_APC_ENABLE_CLI=1
|
||||
DEFAULT_APC_SHM_SIZE="32M"
|
||||
DEFAULT_APC_STAT=1
|
||||
DEFAULT_APCU_STAT=1
|
||||
DEFAULT_APC_BY_DEFAULT=1
|
||||
DEFAULT_APC_SMART=0
|
||||
|
||||
_SKIP_UPDATE_DB=yes
|
||||
|
||||
_CRONTAB_BAKUP_FILE="$(mktemp)"
|
||||
|
||||
_VSERVER_GUEST=no
|
||||
|
||||
# Array oft existing FPM pool definitions
|
||||
#
|
||||
declare -a php_fpm_pool_definition_file_arr=()
|
||||
|
||||
_backup_date="$(date +%Y%m%d-%H%M)"
|
||||
## ---
|
||||
## --- END: Variables
|
||||
|
||||
|
||||
## --------------------------------------------------
|
||||
|
||||
@ -363,7 +408,7 @@ fi
|
||||
|
||||
## --------------------------------------------------
|
||||
|
||||
clear
|
||||
#clear
|
||||
echo
|
||||
echo -e "\033[21G\033[32mInstallation PHP \033[m"
|
||||
echo
|
||||
@ -630,7 +675,23 @@ done
|
||||
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
|
||||
__max_execution_time=$(grep -e "^\s*max_execution_time" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
|
||||
if [ -n "$__max_execution_time" ] ; then
|
||||
_MAX_EXECUTION_TIME=$__max_execution_time
|
||||
|
||||
if ! $(is_int "$__max_execution_time") ; then
|
||||
# remove trailling character (usakky it is 's' for seconds
|
||||
#
|
||||
len=${#__max_execution_time}
|
||||
__max_execution_time="${__max_execution_time::len-1}"
|
||||
|
||||
if $(is_int "$__max_execution_time") ; then
|
||||
|
||||
if [[ ${__max_execution_time} -gt ${_MAX_EXECUTION_TIME} ]] ; then
|
||||
_MAX_EXECUTION_TIME=$__max_execution_time
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -801,8 +862,14 @@ if $WITH_PHP_FPM_SUPPORT ; then
|
||||
DEFAULT_FPM_POOL_START_SERVER=15
|
||||
DEFAULT_FPM_POOL_MIN_SPARE=6
|
||||
DEFAULT_FPM_POOL_MAX_SPARE=24
|
||||
DEFAULT_FPM_POOL_MAX_REQUESTS=500
|
||||
DEFAULT_FPM_POOL_MAX_CHILDREN=256
|
||||
if [[ -n "${APACHE_FCGID_MAX_REQUESTS_PER_PROCESS}" ]] ; then
|
||||
DEFAULT_FPM_POOL_MAX_REQUESTS="${APACHE_FCGID_MAX_REQUESTS_PER_PROCESS}"
|
||||
else
|
||||
DEFAULT_FPM_POOL_MAX_REQUESTS=499
|
||||
fi
|
||||
DEFAULT_FPM_POOL_TERMINATE_TIMEOUT="$(expr $PROXY_TIMEOUT + 1)"
|
||||
|
||||
|
||||
# If php pool definitions exists on installed php, then take that value
|
||||
#
|
||||
@ -828,12 +895,12 @@ if $WITH_PHP_FPM_SUPPORT ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/fpm.d/www-${PHP_MAIN_VERSION}.php-fpm.conf" ]] ; then
|
||||
__pm_max_requests=$(grep -e "^\s*pm.max_requests" "/usr/local/php-${PHP_MAIN_VERSION}/etc/fpm.d/www-${PHP_MAIN_VERSION}.php-fpm.conf" | awk '{print$3}')
|
||||
if [[ -n "$__pm_max_requests" ]] ; then
|
||||
DEFAULT_FPM_POOL_MAX_REQUESTS=$__pm_max_requests
|
||||
fi
|
||||
fi
|
||||
#if [[ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/fpm.d/www-${PHP_MAIN_VERSION}.php-fpm.conf" ]] ; then
|
||||
# __pm_max_requests=$(grep -e "^\s*pm.max_requests" "/usr/local/php-${PHP_MAIN_VERSION}/etc/fpm.d/www-${PHP_MAIN_VERSION}.php-fpm.conf" | awk '{print$3}')
|
||||
# if [[ -n "$__pm_max_requests" ]] ; then
|
||||
# DEFAULT_FPM_POOL_MAX_REQUESTS=$__pm_max_requests
|
||||
# fi
|
||||
#fi
|
||||
|
||||
if [[ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/fpm.d/www-${PHP_MAIN_VERSION}.php-fpm.conf" ]] ; then
|
||||
__pm_max_children=$(grep -e "^\s*pm.max_children" "/usr/local/php-${PHP_MAIN_VERSION}/etc/fpm.d/www-${PHP_MAIN_VERSION}.php-fpm.conf" | awk '{print$3}')
|
||||
@ -842,6 +909,34 @@ if $WITH_PHP_FPM_SUPPORT ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# Parameter request_terminate_timeout
|
||||
#
|
||||
if [[ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/fpm.d/www-${PHP_MAIN_VERSION}.php-fpm.conf" ]] ; then
|
||||
__request_terminate_timeout=$(grep -e "^\s*request_terminate_timeout" "/usr/local/php-${PHP_MAIN_VERSION}/etc/fpm.d/www-${PHP_MAIN_VERSION}.php-fpm.conf" | awk '{print$3}')
|
||||
|
||||
if [ -n "$__request_terminate_timeout" ] ; then
|
||||
|
||||
if ! $(is_int "$__request_terminate_timeout") ; then
|
||||
# remove trailling character (usakky it is 's' for seconds
|
||||
#
|
||||
len=${#__request_terminate_timeout}
|
||||
__request_terminate_timeout="${__request_terminate_timeout::len-1}"
|
||||
|
||||
fi
|
||||
|
||||
if $(is_int "$__request_terminate_timeout") ; then
|
||||
|
||||
if [[ ${__request_terminate_timeout} -gt ${PROXY_TIMEOUT} ]] ; then
|
||||
DEFAULT_FPM_POOL_TERMINATE_TIMEOUT=${__request_terminate_timeout}
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Get existing FPM pool definitions
|
||||
#
|
||||
for _file in $(ls "/usr/local/php-${PHP_MAIN_VERSION}/etc/fpm.d/") ; do
|
||||
@ -959,6 +1054,7 @@ if $WITH_PHP_FPM_SUPPORT ; then
|
||||
done
|
||||
|
||||
FPM_POOL_MAX_CHILDREN=""
|
||||
DEFAULT_FPM_POOL_MAX_CHILDREN=$(expr $FPM_POOL_MIN_SPARE + $DEFAULT_FPM_POOL_MAX_CHILDREN + 5)
|
||||
while [[ "X$FPM_POOL_MAX_CHILDREN" = "X" ]]; do
|
||||
echononl "pm.max_children: [$DEFAULT_FPM_POOL_MAX_CHILDREN] "
|
||||
read FPM_POOL_MAX_CHILDREN
|
||||
@ -973,6 +1069,21 @@ if $WITH_PHP_FPM_SUPPORT ; then
|
||||
fi
|
||||
done
|
||||
|
||||
FPM_POOL_TERMINATE_TIMEOUT=""
|
||||
while [[ "X$FPM_POOL_TERMINATE_TIMEOUT" = "X" ]]; do
|
||||
echononl "request_terminate_timeout: [$DEFAULT_FPM_POOL_TERMINATE_TIMEOUT] "
|
||||
read FPM_POOL_TERMINATE_TIMEOUT
|
||||
if [ "X$FPM_POOL_TERMINATE_TIMEOUT" = "X" ]; then
|
||||
FPM_POOL_TERMINATE_TIMEOUT=$DEFAULT_FPM_POOL_TERMINATE_TIMEOUT
|
||||
break
|
||||
fi
|
||||
if ! is_int $FPM_POOL_TERMINATE_TIMEOUT ; then
|
||||
warn "Wrong value for pm.max_children was given (mus be an integer). Reenter again"
|
||||
FPM_POOL_TERMINATE_TIMEOUT=""
|
||||
continue
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
fi
|
||||
|
||||
@ -1827,7 +1938,6 @@ FPM_DEFAULT_POOL_ACCESS_LOG="${FPM_LOG_DIR}/${FPM_DEFAULT_POOL}-access.log"
|
||||
FPM_DEFAULT_POOL_SLOW_LOG="${FPM_LOG_DIR}/${FPM_DEFAULT_POOL}-slow.log"
|
||||
FPM_DEFAULT_POOL_ACCESS_FORMAT="\"%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%\""
|
||||
|
||||
FPM_DEFAULT_POOL_TERMINATE_TIMEOUT="`expr $MAX_EXECUTION_TIME + 1`s"
|
||||
|
||||
FPM_ULIMIT_MAX_FILES=`su -c "ulimit -H -n" -s /bin/bash $_PHP_FPM_USER`
|
||||
|
||||
@ -2178,6 +2288,7 @@ if $WITH_PHP_FPM_SUPPORT ; then
|
||||
echo " pm.max_spare_servers..............: $FPM_POOL_MAX_SPARE"
|
||||
echo " pm.max_children...................: $FPM_POOL_MAX_CHILDREN"
|
||||
echo " pm.max_requests...................: $FPM_POOL_MAX_REQUESTS"
|
||||
echo " request_terminate_timeout.........: $FPM_POOL_TERMINATE_TIMEOUT"
|
||||
|
||||
|
||||
|
||||
@ -4997,7 +5108,7 @@ request_slowlog_timeout = 10s
|
||||
; does not stop script execution for some reason. A value of '0' means 'off'.
|
||||
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
|
||||
; Default Value: 0
|
||||
request_terminate_timeout = $FPM_DEFAULT_POOL_TERMINATE_TIMEOUT
|
||||
request_terminate_timeout = $FPM_POOL_TERMINATE_TIMEOUT
|
||||
|
||||
; The timeout set by 'request_terminate_timeout' ini option is not engaged after
|
||||
; application calls 'fastcgi_finish_request' or when application has finished and
|
||||
@ -5194,6 +5305,18 @@ EOF
|
||||
fi
|
||||
echo ""
|
||||
|
||||
key="request_terminate_timeout"
|
||||
value="$FPM_POOL_TERMINATE_TIMEOUT"
|
||||
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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user