mod_php_install.sh: add support for setting 'zlib.output_compression' and 'opcache.consistency_checks' at install time. Change some default values for 'opcache'.

This commit is contained in:
Christoph 2023-04-25 01:58:35 +02:00
parent 4f4b3d67be
commit 5c3249b12c

View File

@ -35,14 +35,22 @@ _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=128
DEFAULT_OPCACHE_MEMORY_CONSUMPTION=512
DEFAULT_OPCACHE_INTERNED_STRINGS_BUFFER=24
DEFAULT_OPCACHE_MAX_ACCELERATED_FILES=10000
DEFAULT_OPCACHE_VALIDATE_TIMESTAMPS=1
#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"
@ -532,6 +540,37 @@ echo -e "\033[1mDefine base parameter for php.ini file\033[m"
echo -e "\033[32m--\033[m"
echo ""
## - php.ini: zlib.output_compression
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
__zlib_output_compression=$(grep -e "^\s*zlib.output_compression" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
if [ -n "$__zlib_output_compression" ] ; then
_ZLIB_OUTPUT_COMPRESSION=$__zlib_output_compression
fi
fi
ZLIB_OUTPUT_COMPRESSION=
while [[ "X$ZLIB_OUTPUT_COMPRESSION" = "X" ]]; do
echononl "zlib.output_compression - [$_ZLIB_OUTPUT_COMPRESSION]: "
read ZLIB_OUTPUT_COMPRESSION
if [ "X$ZLIB_OUTPUT_COMPRESSION" = "X" ]; then
ZLIB_OUTPUT_COMPRESSION=$_ZLIB_OUTPUT_COMPRESSION
fi
__read_val=${ZLIB_OUTPUT_COMPRESSION,,}
if [[ "$__read_val" != "on" ]] && [[ "$__read_val" != "off" ]]; then
warn "value for zlib.output_compression must be 'On' or 'Off'"
ZLIB_OUTPUT_COMPRESSION=
continue
fi
done
if [[ "$__read_val" = "on" ]] ; then
ZLIB_OUTPUT_COMPRESSION="On"
else
ZLIB_OUTPUT_COMPRESSION="Off"
fi
## - php.ini: memory_limit
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
__memory_limit=$(grep -e "^\s*memory_limit" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
@ -540,13 +579,6 @@ if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
fi
fi
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
__memory_limit=$(grep -e "^\s*memory_limit" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
if [ -n "$__memory_limit" ] ; then
__MEMORY_LIMIT=$__memory_limit
fi
fi
MEMORY_LIMIT=""
while [[ "X$MEMORY_LIMIT" = "X" ]]; do
echononl "memory_limit - Append unit \"K\", \"M\" or \"G\" [$_MEMORY_LIMIT]: "
@ -1186,11 +1218,62 @@ while [[ "X$OPCACHE_VALIDATE_TIMESTAMPS" = "X" ]]; do
done
# - php.ini - opcache extension: opcache.validate_timestamps
# - php.ini - opcache extension: opcache.consistency_checks
_key="opcache.consistency_checks"
_default_val=$DEFAULT_OPCACHE_CONSISTENCY_CHECKS
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
_OPCACHE_CONSISTENCY_CHECKS=$(grep -e "^\s*${_key}" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
fi
[[ -z "$_OPCACHE_CONSISTENCY_CHECKS" ]] && _OPCACHE_CONSISTENCY_CHECKS=$_default_val
echo ""
echo ""
echo -e "Set value for Parameter \033[32m${_key}\033[m (bool)"
echo ""
echo " If enabled, OPcache will check for updated scripts every opcache.revalidate_freq seconds."
echo " When this directive is disabled, you must reset OPcache manually via opcache_reset(),"
echo " opcache_invalidate() or by restarting the Web server for changes to the filesystem"
echo " to take effect."
echo ""
echo -e "\033[33mTo disable this OPcache check, set value to \033[1m0\033[m"
echo ""
OPCACHE_CONSISTENCY_CHECKS=""
while [[ "X$OPCACHE_CONSISTENCY_CHECKS" = "X" ]]; do
echononl "${_key} [$_OPCACHE_CONSISTENCY_CHECKS]: "
read OPCACHE_CONSISTENCY_CHECKS
if [ "X$OPCACHE_CONSISTENCY_CHECKS" = "X" ]; then
OPCACHE_CONSISTENCY_CHECKS=$_OPCACHE_CONSISTENCY_CHECKS
continue
fi
if [[ "${OPCACHE_CONSISTENCY_CHECKS}" != 0 ]] \
&& [[ "${OPCACHE_CONSISTENCY_CHECKS,,}" != "no" ]] \
&& [[ "${OPCACHE_CONSISTENCY_CHECKS,,}" != "false" ]] \
&& [[ "${OPCACHE_CONSISTENCY_CHECKS}" != 1 ]] \
&& [[ "${OPCACHE_CONSISTENCY_CHECKS,,}" != "yes" ]] \
&& [[ "${OPCACHE_CONSISTENCY_CHECKS,,}" != "true" ]] ; then
OPCACHE_CONSISTENCY_CHECKS=""
warn "Value for '${_key}' must be bool [1/0/true/false/yes/no]."
continue
fi
echo ""
echo "OPCACHE_CONSISTENCY_CHECKS: $OPCACHE_CONSISTENCY_CHECKS"
echo "OPCACHE_CONSISTENCY_CHECKS: ${OPCACHE_CONSISTENCY_CHECKS,,}"
echo ""
if [[ "${OPCACHE_CONSISTENCY_CHECKS,,}" = "no" ]] \
|| [[ "${OPCACHE_CONSISTENCY_CHECKS,,}" = "false" ]]; then
OPCACHE_CONSISTENCY_CHECKS=0
elif [[ "${OPCACHE_CONSISTENCY_CHECKS,,}" = "yes" ]] \
|| [[ "${OPCACHE_CONSISTENCY_CHECKS,,}" = "true" ]]; then
OPCACHE_CONSISTENCY_CHECKS=1
fi
done
# - php.ini - opcache extension: opcache.error_log
_key="opcache.error_log"
_default_val="${DEFAULT_OPCACHE_ERROR_LOG}"
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
_OPCACHE_VALIDATE_TIMESTAMPS=$(grep -e "^\s*${_key}" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
_OPCACHE_ERROR_LOG=$(grep -e "^\s*${_key}" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
fi
[[ -z "$_OPCACHE_ERROR_LOG" ]] && _OPCACHE_ERROR_LOG=$_default_val
@ -1659,6 +1742,7 @@ echo "PHP minor version....................: $PHP_MINOR_VERSION"
echo "PHP patch level......................: $PHP_PATCH_LEVEL"
echo ""
echo "PHP base configuration (php.ini)"
echo " zlib.output_compression...........: $ZLIB_OUTPUT_COMPRESSION"
echo " memory_limit......................: $MEMORY_LIMIT"
echo " max_execution_time................: $MAX_EXECUTION_TIME"
echo " max_input_time....................: $MAX_INPUT_TIME"
@ -1672,6 +1756,7 @@ echo " opcache.memory_consumption........: $OPCACHE_MEMORY_CONSUMPTION"
echo " opcache.interned_strings_buffer...: $OPCACHE_INTERNED_STRINGS_BUFFER"
echo " opcache.max_accelerated_files.....: $OPCACHE_MAX_ACCELERATED_FILES"
echo " opcache.validate_timestamps.......: $OPCACHE_VALIDATE_TIMESTAMPS"
echo " opcache.consistency_checks........: $OPCACHE_CONSISTENCY_CHECKS"
echo " opcache.revalidate_freq...........: $OPCACHE_REVALIDATE_FREQ"
echo " opcache.error_log.................: $OPCACHE_ERROR_LOG"
echo ""
@ -4782,13 +4867,18 @@ else
#
# extension=apcu.so
# apc.enable_cli = 1
# apc.shm_size = 128M
# apc.stat = 1
# apcu.stat = 1
# apc.cache_by_default = 1
# apc.smart = 0
#
echononl "\tphp.ini: extension=apcu .."
_extension="apcu.so"
echo "" >> ${_logdir}/pecl_install.log
echo "# php.ini: extension=apcu .." >> ${_logdir}/pecl_install.log
echo "perl -i -n -p -e \"s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\napc.enable_cli = 1\n#\" $PHP_INI_FILE" >> ${_logdir}/pecl_install.log
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\napc.enable_cli = 1\n#" $PHP_INI_FILE
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\napc.enable_cli = 1\napc.shm_size = 128M\napc.stat = 1\napcu.stat = 1\napc.cache_by_default = 1\napc.smart = 0\n#" $PHP_INI_FILE
if [ "$?" = "0" ]; then
echo_ok
else
@ -6678,6 +6768,26 @@ else
fi
## - set zlib.output_compression = $ZLIB_OUTPUT_COMPRESSION
## -
echononl "\tphp.ini: zlib.output_compression = $ZLIB_OUTPUT_COMPRESSION"
_key="zlib.output_compression"
_val=$ZLIB_OUTPUT_COMPRESSION
if grep -e "^\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
perl -i -n -p -e "s#^(\s*${_key}\s*=.*)#;\1\n${_key} = ${_val}#" $PHP_INI_FILE
_retval=$?
elif grep -e "^\s*;\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
sed -i "0,/^\([ \t]*;[ \t]*${_key}[ \t]*=.*\)/ s##\1\n${_key} = \"${_val}\"\n#" $PHP_INI_FILE
#perl -i -n -p -e "s#^(\s*;\s*${_key}\s*=.*)#\1\n${_key} = ${_val}#" $PHP_INI_FILE
_retval=$?
fi
if [ "$_retval" = "0" ]; then
echo_ok
else
echo_failed
fi
## - set memory_limit = $MEMORY_LIMIT
## -
echononl "\tphp.ini: memory_limit = $MEMORY_LIMIT"
@ -6947,7 +7057,7 @@ if [[ -n "$zend_extension_opcache" ]];then
## - set opcache.enable_cli=1
## -
echononl "\tphp.ini: opcache.enable_cli = 1 .."
echononl "\tphp.ini: opcache.enable_cli = $OPCACHE_ENABLE_CLI .."
opcache_key="opcache.enable_cli"
opcache_val=$OPCACHE_ENABLE_CLI
if grep -e "^\s*${opcache_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
@ -6965,7 +7075,7 @@ if [[ -n "$zend_extension_opcache" ]];then
## - set opcache.memory_consumption
## -
echononl "\tphp.ini: opcache.memory_consumption = 128 .."
echononl "\tphp.ini: opcache.memory_consumption = $OPCACHE_MEMORY_CONSUMPTION .."
opcache_key="opcache.memory_consumption"
opcache_val=$OPCACHE_MEMORY_CONSUMPTION
if grep -e "^\s*${opcache_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
@ -6983,7 +7093,7 @@ if [[ -n "$zend_extension_opcache" ]];then
## - set opcache.interned_strings_buffer
## -
echononl "\tphp.ini: opcache.interned_strings_buffer = 16 .."
echononl "\tphp.ini: opcache.interned_strings_buffer = $OPCACHE_INTERNED_STRINGS_BUFFER .."
opcache_key="opcache.interned_strings_buffer"
opcache_val=$OPCACHE_INTERNED_STRINGS_BUFFER
if grep -e "^\s*${opcache_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
@ -7001,7 +7111,7 @@ if [[ -n "$zend_extension_opcache" ]];then
## - set opcache.max_accelerated_files
## -
echononl "\tphp.ini: opcache.max_accelerated_files = 10000 .."
echononl "\tphp.ini: opcache.max_accelerated_files = $OPCACHE_MAX_ACCELERATED_FILES .."
opcache_key="opcache.max_accelerated_files"
opcache_val=$OPCACHE_MAX_ACCELERATED_FILES
if grep -e "^\s*${opcache_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
@ -7019,7 +7129,7 @@ if [[ -n "$zend_extension_opcache" ]];then
## - set opcache.validate_timestamps
## -
echononl "\tphp.ini: opcache.validate_timestamps = 1 .."
echononl "\tphp.ini: opcache.validate_timestamps = $OPCACHE_VALIDATE_TIMESTAMPS .."
opcache_key="opcache.validate_timestamps"
opcache_val=$OPCACHE_VALIDATE_TIMESTAMPS
if grep -e "^\s*${opcache_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
@ -7035,9 +7145,27 @@ if [[ -n "$zend_extension_opcache" ]];then
echo_failed
fi
## - set opcache.consistency_checks
## -
echononl "\tphp.ini: opcache.validate_timestamps = $OPCACHE_CONSISTENCY_CHECKS .."
opcache_key="opcache.consistency_checks"
opcache_val=$OPCACHE_CONSISTENCY_CHECKS
if grep -e "^\s*${opcache_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
perl -i -n -p -e "s#^(\s*${opcache_key}\s*=.*)#;\1\n*${opcache_key} = ${opcache_val}#" $PHP_INI_FILE
_retval=$?
elif grep -e "^\s*;\s*${opcache_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
perl -i -n -p -e "s#^(\s*;${opcache_key}\s*=.*)#\1\n${opcache_key} = ${opcache_val}#" $PHP_INI_FILE
_retval=$?
fi
if [ "$_retval" = "0" ]; then
echo_ok
else
echo_failed
fi
## - set opcache.revalidate_freq
## -
echononl "\tphp.ini: opcache.revalidate_freq = 1 .."
echononl "\tphp.ini: opcache.revalidate_freq = $OPCACHE_REVALIDATE_FREQ .."
opcache_key="opcache.revalidate_freq"
opcache_val=$OPCACHE_REVALIDATE_FREQ
if grep -e "^\s*${opcache_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then