diff --git a/mod_php_install.sh b/mod_php_install.sh index 39cf545..b3cb821 100755 --- a/mod_php_install.sh +++ b/mod_php_install.sh @@ -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