mod_php_install.sh: add support for adjusting apcu values.

This commit is contained in:
Christoph 2023-04-29 01:58:26 +02:00
parent 5c3249b12c
commit de34143a3b

View File

@ -60,6 +60,15 @@ 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)"
@ -1393,6 +1402,273 @@ if [[ "$OPCACHE_ERROR_LOG" = "OTHER" ]]; then
fi
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo -e "\033[1mDefine Parameters for 'apcu' extension\033[m"
echo -e "\033[32m--\033[m"
# - php.ini - apcu extension: apc.enable_cli
_key="apc.enable_cli"
_default_val=$DEFAULT_APC_ENABLE_CLI
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
_APC_ENABLE_CLI=$(grep -e "^\s*${_key}/s*=" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
fi
[[ -z "$_APC_ENABLE_CLI" ]] && _APC_ENABLE_CLI=$_default_val
echo ""
echo ""
echo -e "Set value for Parameter \033[32m${_key}\033[m (bool)"
echo ""
echo " Enables the CLI of the 'apcu' extension. "
echo ""
APC_ENABLE_CLI=""
while [[ "X$APC_ENABLE_CLI" = "X" ]]; do
echononl "${_key} [$_APC_ENABLE_CLI]: "
read APC_ENABLE_CLI
if [ "X$APC_ENABLE_CLI" = "X" ]; then
APC_ENABLE_CLI=$_APC_ENABLE_CLI
continue
fi
if [[ "${APC_ENABLE_CLI}" != 0 ]] \
&& [[ "${APC_ENABLE_CLI,,}" != "no" ]] \
&& [[ "${APC_ENABLE_CLI,,}" != "false" ]] \
&& [[ "${APC_ENABLE_CLI}" != 1 ]] \
&& [[ "${APC_ENABLE_CLI,,}" != "yes" ]] \
&& [[ "${APC_ENABLE_CLI,,}" != "true" ]] ; then
APC_ENABLE_CLI=""
warn "Value for '${_key}' must be bool [1/0/true/false/yes/no]."
continue
fi
echo ""
echo "APC_ENABLE_CLI: $APC_ENABLE_CLI"
echo "APC_ENABLE_CLI: ${APC_ENABLE_CLI,,}"
echo ""
if [[ "${APC_ENABLE_CLI,,}" = "no" ]] \
|| [[ "${APC_ENABLE_CLI,,}" = "false" ]]; then
APC_ENABLE_CLI=0
elif [[ "${APC_ENABLE_CLI,,}" = "yes" ]] \
|| [[ "${APC_ENABLE_CLI,,}" = "true" ]]; then
APC_ENABLE_CLI=1
fi
done
# - php.ini - apcu extension: apc.shm_size
_key="apc.shm_size"
_default_val=$DEFAULT_APC_SHM_SIZE
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
_APC_SHM_SIZE=$(grep -e "^\s*${_key}" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
fi
[[ -z "$_APC_SHM_SIZE" ]] && _APC_SHM_SIZE=$_default_val
echo ""
echo ""
echo -e "Set value for Parameter \033[32m${_key}\033[m (int - in megabytes)"
echo ""
echo " The size of the shared memory storage used by apcu, in megabytes."
echo ""
APC_SHM_SIZE=""
while [[ "X$APC_SHM_SIZE" = "X" ]]; do
echononl "${_key} [$_APC_SHM_SIZE]: "
read APC_SHM_SIZE
if [ "X$APC_SHM_SIZE" = "X" ]; then
APC_SHM_SIZE=$_APC_SHM_SIZE
fi
if is_int $APC_SHM_SIZE ; then
APC_SHM_SIZE="${APC_SHM_SIZE}M"
warn "No unit is given. \"M\" was appended: APC_SHM_SIZE: $APC_SHM_SIZE"
continue
fi
_unit="${APC_SHM_SIZE: -1}"
if [[ "$_unit" != "K" ]] && [[ "$_unit" != "M" ]] && [[ "$_unit" != "G" ]]; then
warn "Wrong unit was given for APC_SHM_SIZE. Reenter again"
APC_SHM_SIZE=""
continue
fi
if ! is_int ${APC_SHM_SIZE::-1} ; then
warn "Wrong value for APC_SHM_SIZE. was given. Reenter again"
APC_SHM_SIZE=""
fi
done
# - php.ini - apcu extension: apc.stat
_key="apc.stat"
_default_val=$DEFAULT_APC_STAT
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
_APC_STAT=$(grep -e "^\s*${_key}/s*=" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
fi
[[ -z "$_APC_STAT" ]] && _APC_STAT=$_default_val
echo ""
echo ""
echo -e "Set value for Parameter \033[32m${_key}\033[m (bool)"
echo ""
APC_STAT=""
while [[ "X$APC_STAT" = "X" ]]; do
echononl "${_key} [$_APC_STAT]: "
read APC_STAT
if [ "X$APC_STAT" = "X" ]; then
APC_STAT=$_APC_STAT
continue
fi
if [[ "${APC_STAT}" != 0 ]] \
&& [[ "${APC_STAT,,}" != "no" ]] \
&& [[ "${APC_STAT,,}" != "false" ]] \
&& [[ "${APC_STAT}" != 1 ]] \
&& [[ "${APC_STAT,,}" != "yes" ]] \
&& [[ "${APC_STAT,,}" != "true" ]] ; then
APC_STAT=""
warn "Value for '${_key}' must be bool [1/0/true/false/yes/no]."
continue
fi
echo ""
echo "APC_STAT: $APC_STAT"
echo "APC_STAT: ${APC_STAT,,}"
echo ""
if [[ "${APC_STAT,,}" = "no" ]] \
|| [[ "${APC_STAT,,}" = "false" ]]; then
APC_STAT=0
elif [[ "${APC_STAT,,}" = "yes" ]] \
|| [[ "${APC_STAT,,}" = "true" ]]; then
APC_STAT=1
fi
done
# - php.ini - apcu extension: apcu.stat
_key="apcu.stat"
_default_val=$DEFAULT_APCU_STAT
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
_APCU_STAT=$(grep -e "^\s*${_key}/s*=" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
fi
[[ -z "$_APCU_STAT" ]] && _APCU_STAT=$_default_val
echo ""
echo ""
echo -e "Set value for Parameter \033[32m${_key}\033[m (bool)"
echo ""
APCU_STAT=""
while [[ "X$APCU_STAT" = "X" ]]; do
echononl "${_key} [$_APCU_STAT]: "
read APCU_STAT
if [ "X$APCU_STAT" = "X" ]; then
APCU_STAT=$_APCU_STAT
continue
fi
if [[ "${APCU_STAT}" != 0 ]] \
&& [[ "${APCU_STAT,,}" != "no" ]] \
&& [[ "${APCU_STAT,,}" != "false" ]] \
&& [[ "${APCU_STAT}" != 1 ]] \
&& [[ "${APCU_STAT,,}" != "yes" ]] \
&& [[ "${APCU_STAT,,}" != "true" ]] ; then
APCU_STAT=""
warn "Value for '${_key}' must be bool [1/0/true/false/yes/no]."
continue
fi
echo ""
echo "APCU_STAT: $APCU_STAT"
echo "APCU_STAT: ${APCU_STAT,,}"
echo ""
if [[ "${APCU_STAT,,}" = "no" ]] \
|| [[ "${APCU_STAT,,}" = "false" ]]; then
APCU_STAT=0
elif [[ "${APCU_STAT,,}" = "yes" ]] \
|| [[ "${APCU_STAT,,}" = "true" ]]; then
APCU_STAT=1
fi
done
# - php.ini - apcu extension: apc.cache_by_default
_key="apc.cache_by_default"
_default_val=$DEFAULT_APC_BY_DEFAULT
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
_APC_BY_DEFAULT=$(grep -e "^\s*${_key}/s*=" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
fi
[[ -z "$_APC_BY_DEFAULT" ]] && _APC_BY_DEFAULT=$_default_val
echo ""
echo ""
echo -e "Set value for Parameter \033[32m${_key}\033[m (bool)"
echo ""
APC_BY_DEFAULT=""
while [[ "X$APC_BY_DEFAULT" = "X" ]]; do
echononl "${_key} [$_APC_BY_DEFAULT]: "
read APC_BY_DEFAULT
if [ "X$APC_BY_DEFAULT" = "X" ]; then
APC_BY_DEFAULT=$_APC_BY_DEFAULT
continue
fi
if [[ "${APC_BY_DEFAULT}" != 0 ]] \
&& [[ "${APC_BY_DEFAULT,,}" != "no" ]] \
&& [[ "${APC_BY_DEFAULT,,}" != "false" ]] \
&& [[ "${APC_BY_DEFAULT}" != 1 ]] \
&& [[ "${APC_BY_DEFAULT,,}" != "yes" ]] \
&& [[ "${APC_BY_DEFAULT,,}" != "true" ]] ; then
APC_BY_DEFAULT=""
warn "Value for '${_key}' must be bool [1/0/true/false/yes/no]."
continue
fi
echo ""
echo "APC_BY_DEFAULT: $APC_BY_DEFAULT"
echo "APC_BY_DEFAULT: ${APC_BY_DEFAULT,,}"
echo ""
if [[ "${APC_BY_DEFAULT,,}" = "no" ]] \
|| [[ "${APC_BY_DEFAULT,,}" = "false" ]]; then
APC_BY_DEFAULT=0
elif [[ "${APC_BY_DEFAULT,,}" = "yes" ]] \
|| [[ "${APC_BY_DEFAULT,,}" = "true" ]]; then
APC_BY_DEFAULT=1
fi
done
# - php.ini - apcu extension: apc.smart
_key="apc.smart"
_default_val=$DEFAULT_APC_SMART
if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then
_APC_SMART=$(grep -e "^\s*${_key}/s*=" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}')
fi
[[ -z "$_APC_SMART" ]] && _APC_SMART=$_default_val
echo ""
echo ""
echo -e "Set value ${_key}\033[32m${_key}\033[m (bool)"
echo ""
APC_SMART=""
while [[ "X$APC_SMART" = "X" ]]; do
echononl "${_key} [$_APC_SMART]: "
read APC_SMART
if [ "X$APC_SMART" = "X" ]; then
APC_SMART=$_APC_SMART
continue
fi
if [[ "${APC_SMART}" != 0 ]] \
&& [[ "${APC_SMART,,}" != "no" ]] \
&& [[ "${APC_SMART,,}" != "false" ]] \
&& [[ "${APC_SMART}" != 1 ]] \
&& [[ "${APC_SMART,,}" != "yes" ]] \
&& [[ "${APC_SMART,,}" != "true" ]] ; then
APC_SMART=""
warn "Value for '${_key}' must be bool [1/0/true/false/yes/no]."
continue
fi
echo ""
echo "APC_SMART: $APC_SMART"
echo "APC_SMART: ${APC_SMART,,}"
echo ""
if [[ "${APC_SMART,,}" = "no" ]] \
|| [[ "${APC_SMART,,}" = "false" ]]; then
APC_SMART=0
elif [[ "${APC_SMART,,}" = "yes" ]] \
|| [[ "${APC_SMART,,}" = "true" ]]; then
APC_SMART=1
fi
done
echo ""
echo ""
@ -1760,6 +2036,14 @@ echo " opcache.consistency_checks........: $OPCACHE_CONSISTENCY_CHECKS"
echo " opcache.revalidate_freq...........: $OPCACHE_REVALIDATE_FREQ"
echo " opcache.error_log.................: $OPCACHE_ERROR_LOG"
echo ""
echo "Parameters for 'apcu' extension"
echo " apc.enable_cli....................: $APC_ENABLE_CLI"
echo " apc.shm_size......................: $APC_SHM_SIZE"
echo " apc.stat..........................; $APC_STAT"
echo " apcu.stat.........................; $APCU_STAT"
echo " apc.cache_by_default..............; $APC_BY_DEFAULT"
echo " apc.smart.........................: $APC_SMART"
echo ""
echo "Apache User..........................: $HTTPD_USER"
echo "Apache Group.........................: $HTTPD_GROUP"
echo ""
@ -4866,19 +5150,19 @@ else
# Add to php.ini
#
# 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
# apc.enable_cli = $APC_ENABLE_CLI
# apc.shm_size = $APC_SHM_SIZE
# apc.stat = $APC_STAT
# apcu.stat = $APCU_STAT
# apc.cache_by_default = $APC_BY_DEFAULT
# apc.smart = $APC_SMART
#
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\napc.shm_size = 128M\napc.stat = 1\napcu.stat = 1\napc.cache_by_default = 1\napc.smart = 0\n#" $PHP_INI_FILE
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\napc.enable_cli = ${APC_ENABLE_CLI}\napc.shm_size = ${APC_SHM_SIZE}\napc.stat = ${APC_STAT}\napcu.stat = ${APCU_STAT}\napc.cache_by_default = ${APC_BY_DEFAULT}\napc.smart = ${APC_SMART}\n#" $PHP_INI_FILE
if [ "$?" = "0" ]; then
echo_ok
else