diff --git a/mod_php_install.sh b/mod_php_install.sh index 248916d..d09cc52 100755 --- a/mod_php_install.sh +++ b/mod_php_install.sh @@ -31,6 +31,23 @@ _MAX_INPUT_TIME=180 _UPLOAD_MAX_FILESIZE="128M" _POST_MAX_SIZE="128M" +# Default Settings opcache extension +# +DEFAULT_OPCACHE_ENABLE=1 +DEFAULT_OPCACHE_ENABLE_CLI=1 +DEFAULT_OPCACHE_MEMORY_CONSUMPTION=128 +DEFAULT_OPCACHE_INTERNED_STRINGS_BUFFER=24 +DEFAULT_OPCACHE_MAX_ACCELERATED_FILES=10000 +DEFAULT_OPCACHE_VALIDATE_TIMESTAMPS=1 +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 + _SKIP_UPDATE_DB=yes _CRONTAB_BAKUP_FILE="$(mktemp)" @@ -491,11 +508,18 @@ else fi +#echo "" +#echo "" +#echo -e "\033[32m--\033[m" +#echo "" +#echo -e "Define PHP parameters for php.ini file" +#echo "" + echo "" echo "" echo -e "\033[32m--\033[m" -echo "" -echo -e "Define PHP parameters for php.ini file" +echo -e "\033[1mDefine base parameter for php.ini file\033[m" +echo -e "\033[32m--\033[m" echo "" ## - php.ini: memory_limit @@ -515,7 +539,7 @@ fi MEMORY_LIMIT="" while [[ "X$MEMORY_LIMIT" = "X" ]]; do - echononl "memory_limit - Append unit \"K\", \"M\" or \"G\" [$_MEMORY_LIMIT] " + echononl "memory_limit - Append unit \"K\", \"M\" or \"G\" [$_MEMORY_LIMIT]: " read MEMORY_LIMIT if [ "X$MEMORY_LIMIT" = "X" ]; then MEMORY_LIMIT=$_MEMORY_LIMIT @@ -547,7 +571,7 @@ fi MAX_EXECUTION_TIME="" while [[ "X$MAX_EXECUTION_TIME" = "X" ]]; do - echononl "max_execution_time (in Seconds) !! insert ONLY the number? [$_MAX_EXECUTION_TIME] " + echononl "max_execution_time (in Seconds) !! insert ONLY the number? [$_MAX_EXECUTION_TIME]: " read MAX_EXECUTION_TIME if [ "X$MAX_EXECUTION_TIME" = "X" ]; then MAX_EXECUTION_TIME=$_MAX_EXECUTION_TIME @@ -576,7 +600,7 @@ fi MAX_INPUT_TIME="" while [[ "X$MAX_INPUT_TIME" = "X" ]]; do - echononl "max_input_time (in Seconds) !! insert ONLY the number? [$_MAX_INPUT_TIME] " + echononl "max_input_time (in Seconds) !! insert ONLY the number? [$_MAX_INPUT_TIME]: " read MAX_INPUT_TIME if [ "X$MAX_INPUT_TIME" = "X" ]; then MAX_INPUT_TIME=$_MAX_INPUT_TIME @@ -597,7 +621,7 @@ fi UPLOAD_MAX_FILESIZE="" while [[ "X$UPLOAD_MAX_FILESIZE" = "X" ]]; do - echononl "upload_max_filesize - Append unit \"K\", \"M\" or \"G\" [$_UPLOAD_MAX_FILESIZE] " + echononl "upload_max_filesize - Append unit \"K\", \"M\" or \"G\" [$_UPLOAD_MAX_FILESIZE]: " read UPLOAD_MAX_FILESIZE if [ "X$UPLOAD_MAX_FILESIZE" = "X" ]; then UPLOAD_MAX_FILESIZE=$_UPLOAD_MAX_FILESIZE @@ -629,7 +653,7 @@ fi POST_MAX_SIZE="" while [[ "X$POST_MAX_SIZE" = "X" ]]; do - echononl "post_max_size - Append unit \"K\", \"M\" or \"G\" [$_POST_MAX_SIZE] " + echononl "post_max_size - Append unit \"K\", \"M\" or \"G\" [$_POST_MAX_SIZE]: " read POST_MAX_SIZE if [ "X$POST_MAX_SIZE" = "X" ]; then POST_MAX_SIZE=$_POST_MAX_SIZE @@ -652,78 +676,6 @@ while [[ "X$POST_MAX_SIZE" = "X" ]]; do done -echo "" -echo "" -echo -e "\033[32m--\033[m" -echo "" -echo -e "Set Symlinks ? [ \033[33myes/no\033[m ]" -echo "" - -echo "" -if [ ! -h /usr/local/php ] ; then - SYMLINK_PHP=true - echo "Symlink /usr/local/php -> /usr/local/php-$PHP_MAIN_VERSION will be set." -else - OK="" - while [ "X$OK" = "X" ] - do - echononl "Set symlink /usr/local/php -> /usr/local/php-$PHP_MAIN_VERSION ? [ $_SYMLINK_PHP ]: " - read OK - __to_lower=`echo $OK | tr '[:upper:]' '[:lower:]' | tr -d ' '` - if [ "X$OK" = "X" ]; then - OK=$_SYMLINK_PHP - break - fi - if [ "$__to_lower" = "yes" -o "$__to_lower" = "no" ]; then - OK=$__to_lower - break - fi - echo "" - echo -e "\t\033[31mWrong entry !! Try again..\033[m" - echo "" - OK= - done - if [ "$OK" = "yes" ]; then - SYMLINK_PHP=true - else - SYMLINK_PHP=false - fi -fi - -echo "" -if [ ! -h /usr/local/php-${PHP_MAIN_VERSION} ] ; then - SYMLINK_PHP_MAIN_VERSION=true - echo "Symlink /usr/local/php-$PHP_MAIN_VERSION -> `basename $PREFIX_PHP` will be set." -else - OK="" - while [ "X$OK" = "X" ]; do - echononl "Set symlink /usr/local/php-$PHP_MAIN_VERSION -> `basename $PREFIX_PHP` ? [ $_SYMLINK_PHP_MAIN_VERSION ]: " - read OK - __to_lower=`echo $OK | tr '[:upper:]' '[:lower:]' | tr -d ' '` - if [ "X$OK" = "X" ]; then - OK=$_SYMLINK_PHP_MAIN_VERSION - break - fi - if [ "$__to_lower" = "yes" -o "$__to_lower" = "no" ]; then - OK=$__to_lower - break; - fi - echo "" - echo -e "\t\033[31mWrong entry !! Try again..\033[m" - echo "" - OK= - done - if [ "$OK" = "yes" ]; then - SYMLINK_PHP_MAIN_VERSION=true - else - SYMLINK_PHP_MAIN_VERSION=false - fi - -fi - - - - echo "" echo "" echo -e "\033[32m--\033[m" @@ -753,6 +705,9 @@ done if [ "$OK" = "yes" ]; then WITH_PHP_FPM_SUPPORT=true ACTIVATE_PHP_FPM_INIT_SCRIPT=true + + DEFAULT_OPCACHE_ERROR_LOG="/var/log/php-${PHP_MAIN_VERSION}-fpm/opcache_error.log" + else WITH_PHP_FPM_SUPPORT=false ACTIVATE_PHP_FPM_INIT_SCRIPT=false @@ -913,6 +868,476 @@ if $WITH_PHP_FPM_SUPPORT ; then fi + +echo "" +echo "" +echo -e "\033[32m--\033[m" +echo -e "\033[1mDefine Parameters for 'opcache' extension\033[m" +echo -e "\033[32m--\033[m" + + +# - php.ini - opcache extension: opcache.enable +_key="opcache.enable" +_default_val=$DEFAULT_OPCACHE_ENABLE +if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then + _OPCACHE_ENABLE=$(grep -e "^\s*${_key}" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}') +fi +[[ -z "$_OPCACHE_ENABLE" ]] && _OPCACHE_ENABLE=$_default_val + +echo "" +echo "" +echo -e "Set value for Parameter \033[32mopcache.enable\033[m (bool)" +echo "" +echo " Enables the opcode cache. When disabled, code is not optimised or cached." +echo " The setting opcache.enable can not be enabled at runtime through ini_set()," +echo " it can only be disabled. Trying to enable it in a script will generate a warning. " +echo "" +echo -e "\033[33mIts recommend to leave this enabled (\033[1m1\033[m)" +echo "" +OPCACHE_ENABLE="" +while [[ "X$OPCACHE_ENABLE" = "X" ]]; do + echononl "opcache.enable [$_OPCACHE_ENABLE]: " + read OPCACHE_ENABLE + if [ "X$OPCACHE_ENABLE" = "X" ]; then + OPCACHE_ENABLE=$_OPCACHE_ENABLE + continue + fi + if [[ "${OPCACHE_ENABLE}" != 0 ]] \ + && [[ "${OPCACHE_ENABLE,,}" != "no" ]] \ + && [[ "${OPCACHE_ENABLE,,}" != "false" ]] \ + && [[ "${OPCACHE_ENABLE}" != 1 ]] \ + && [[ "${OPCACHE_ENABLE,,}" != "yes" ]] \ + && [[ "${OPCACHE_ENABLE,,}" != "true" ]] ; then + OPCACHE_ENABLE="" + warn "Value for 'opcache.enable' must be bool [1/0/true/false/yes/no]." + continue + fi + echo "" + echo "OPCACHE_ENABLE: $OPCACHE_ENABLE" + echo "OPCACHE_ENABLE: ${OPCACHE_ENABLE,,}" + echo "" + if [[ "${OPCACHE_ENABLE,,}" = "no" ]] \ + || [[ "${OPCACHE_ENABLE,,}" = "false" ]]; then + OPCACHE_ENABLE=0 + elif [[ "${OPCACHE_ENABLE,,}" = "yes" ]] \ + || [[ "${OPCACHE_ENABLE,,}" = "true" ]]; then + OPCACHE_ENABLE=1 + fi +done + + +# - php.ini - opcache extension: opcache.enable_cli +_key="opcache.enable_cli" +_default_val=$DEFAULT_OPCACHE_ENABLE_CLI +if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then + _OPCACHE_ENABLE_CLI=$(grep -e "^\s*${_key}" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}') +fi +[[ -z "$_OPCACHE_ENABLE_CLI" ]] && _OPCACHE_ENABLE_CLI=$_default_val + +echo "" +echo "" +echo -e "Set value for Parameter \033[32mopcache.enable_cli\033[m (bool)" +echo "" +echo " Enables the opcode cache for the CLI version of PHP. " +echo "" +OPCACHE_ENABLE_CLI="" +while [[ "X$OPCACHE_ENABLE_CLI" = "X" ]]; do + echononl "opcache.enable_cli [$_OPCACHE_ENABLE_CLI]: " + read OPCACHE_ENABLE_CLI + if [ "X$OPCACHE_ENABLE_CLI" = "X" ]; then + OPCACHE_ENABLE_CLI=$_OPCACHE_ENABLE_CLI + continue + fi + if [[ "${OPCACHE_ENABLE_CLI}" != 0 ]] \ + && [[ "${OPCACHE_ENABLE_CLI,,}" != "no" ]] \ + && [[ "${OPCACHE_ENABLE_CLI,,}" != "false" ]] \ + && [[ "${OPCACHE_ENABLE_CLI}" != 1 ]] \ + && [[ "${OPCACHE_ENABLE_CLI,,}" != "yes" ]] \ + && [[ "${OPCACHE_ENABLE_CLI,,}" != "true" ]] ; then + OPCACHE_ENABLE_CLI="" + warn "Value for 'opcache.enable_cli' must be bool [1/0/true/false/yes/no]." + continue + fi + echo "" + echo "OPCACHE_ENABLE_CLI: $OPCACHE_ENABLE_CLI" + echo "OPCACHE_ENABLE_CLI: ${OPCACHE_ENABLE_CLI,,}" + echo "" + if [[ "${OPCACHE_ENABLE_CLI,,}" = "no" ]] \ + || [[ "${OPCACHE_ENABLE_CLI,,}" = "false" ]]; then + OPCACHE_ENABLE_CLI=0 + elif [[ "${OPCACHE_ENABLE_CLI,,}" = "yes" ]] \ + || [[ "${OPCACHE_ENABLE_CLI,,}" = "true" ]]; then + OPCACHE_ENABLE_CLI=1 + fi +done + + +# - php.ini - opcache extension: opcache.memory_consumption +_key="opcache.memory_consumption" +_default_val=$DEFAULT_OPCACHE_MEMORY_CONSUMPTION +if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then + _OPCACHE_MEMORY_CONSUMPTION=$(grep -e "^\s*${_key}" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}') +fi +[[ -z "$_OPCACHE_MEMORY_CONSUMPTION" ]] && _OPCACHE_MEMORY_CONSUMPTION=$_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 OPcache, in megabytes. The minimum" +echo " permissible value is "8", which is enforced if a smaller value is set." +echo "" +OPCACHE_MEMORY_CONSUMPTION="" +while [[ "X$OPCACHE_MEMORY_CONSUMPTION" = "X" ]]; do + echononl "${_key} [$_OPCACHE_MEMORY_CONSUMPTION]: " + read OPCACHE_MEMORY_CONSUMPTION + if [ "X$OPCACHE_MEMORY_CONSUMPTION" = "X" ]; then + OPCACHE_MEMORY_CONSUMPTION=$_OPCACHE_MEMORY_CONSUMPTION + fi + if ! is_int $OPCACHE_MEMORY_CONSUMPTION ; then + OPCACHE_MEMORY_CONSUMPTION="" + warn "Value for '${_key} must be a number." + continue + fi +done + + +# - php.ini - opcache extension: opcache.interned_strings_buffer +_key="opcache.interned_strings_buffer" +_default_val=$DEFAULT_OPCACHE_INTERNED_STRINGS_BUFFER +if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then + _OPCACHE_INTERNED_STRINGS_BUFFER=$(grep -e "^\s*${_key}" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}') +fi +[[ -z "$_OPCACHE_INTERNED_STRINGS_BUFFER" ]] && _OPCACHE_INTERNED_STRINGS_BUFFER=$_default_val + +echo "" +echo "" +echo -e "Set value for Parameter \033[32m${_key}\033[m (int - in megabytes)" +echo "" +echo " The amount of memory used to store interned strings, in megabytes. " +echo "" +OPCACHE_INTERNED_STRINGS_BUFFER="" +while [[ "X$OPCACHE_INTERNED_STRINGS_BUFFER" = "X" ]]; do + echononl "${_key} [$_OPCACHE_INTERNED_STRINGS_BUFFER]: " + read OPCACHE_INTERNED_STRINGS_BUFFER + if [ "X$OPCACHE_INTERNED_STRINGS_BUFFER" = "X" ]; then + OPCACHE_INTERNED_STRINGS_BUFFER=$_OPCACHE_INTERNED_STRINGS_BUFFER + fi + if ! is_int $OPCACHE_INTERNED_STRINGS_BUFFER ; then + OPCACHE_INTERNED_STRINGS_BUFFER="" + warn "Value for '${_key}' must be a number." + continue + fi +done + + +# - php.ini - opcache extension: opcache.max_accelerated_files +_key="opcache.max_accelerated_files" +_default_val=$DEFAULT_OPCACHE_MAX_ACCELERATED_FILES +if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then + _OPCACHE_MAX_ACCELERATED_FILES=$(grep -e "^\s*${_key}" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}') +fi +[[ -z "$_OPCACHE_MAX_ACCELERATED_FILES" ]] && _OPCACHE_MAX_ACCELERATED_FILES=$_default_val + +echo "" +echo "" +echo -e "Set value for Parameter \033[32m${_key}\033[m (int)" +echo "" +OPCACHE_MAX_ACCELERATED_FILES="" +while [[ "X$OPCACHE_MAX_ACCELERATED_FILES" = "X" ]]; do + echononl "${_key} [$_OPCACHE_MAX_ACCELERATED_FILES]: " + read OPCACHE_MAX_ACCELERATED_FILES + if [ "X$OPCACHE_MAX_ACCELERATED_FILES" = "X" ]; then + OPCACHE_MAX_ACCELERATED_FILES=$_OPCACHE_MAX_ACCELERATED_FILES + fi + if ! is_int $OPCACHE_MAX_ACCELERATED_FILES ; then + OPCACHE_MAX_ACCELERATED_FILES="" + warn "Value for '${_key}' be a number." + continue + fi +done + + +# - php.ini - opcache extension: opcache.revalidate_freq +_key="opcache.revalidate_freq" +_default_val=$DEFAULT_OPCACHE_REVALIDATE_FREQ +if [ -f "/usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini" ]; then + _OPCACHE_REVALIDATE_FREQ=$(grep -e "^\s*${_key}" /usr/local/php-${PHP_MAIN_VERSION}/etc/php.ini | awk '{print$3}') +fi +[[ -z "$_OPCACHE_REVALIDATE_FREQ" ]] && _OPCACHE_REVALIDATE_FREQ=$_default_val + +echo "" +echo "" +echo -e "Set value for Parameter \033[32m${_key}\033[m (int)" +echo "" +echo " How often to check script timestamps for updates, in seconds." +echo " 0 will result in OPcache checking for updates on every request." +echo "" +echo " This configuration directive is ignored if opcache.validate_timestamps" +echo " is disabled. " +echo "" +echo -e "\033[33mOn deveelopment systems maybe you want to set this value to \033[1m0\033[m" +echo "" +OPCACHE_REVALIDATE_FREQ="" +while [[ "X$OPCACHE_REVALIDATE_FREQ" = "X" ]]; do + echononl "${_key} [$_OPCACHE_REVALIDATE_FREQ]: " + read OPCACHE_REVALIDATE_FREQ + if [ "X$OPCACHE_REVALIDATE_FREQ" = "X" ]; then + OPCACHE_REVALIDATE_FREQ=$_OPCACHE_REVALIDATE_FREQ + fi + if ! is_int $OPCACHE_REVALIDATE_FREQ ; then + OPCACHE_REVALIDATE_FREQ="" + warn "Value for '${_key}' must be a number." + continue + fi +done + + +# - php.ini - opcache extension: opcache.validate_timestamps +_key="opcache.validate_timestamps" +_default_val=$DEFAULT_OPCACHE_VALIDATE_TIMESTAMPS +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}') +fi +[[ -z "$_OPCACHE_VALIDATE_TIMESTAMPS" ]] && _OPCACHE_VALIDATE_TIMESTAMPS=$_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_VALIDATE_TIMESTAMPS="" +while [[ "X$OPCACHE_VALIDATE_TIMESTAMPS" = "X" ]]; do + echononl "${_key} [$_OPCACHE_VALIDATE_TIMESTAMPS]: " + read OPCACHE_VALIDATE_TIMESTAMPS + if [ "X$OPCACHE_VALIDATE_TIMESTAMPS" = "X" ]; then + OPCACHE_VALIDATE_TIMESTAMPS=$_OPCACHE_VALIDATE_TIMESTAMPS + continue + fi + if [[ "${OPCACHE_VALIDATE_TIMESTAMPS}" != 0 ]] \ + && [[ "${OPCACHE_VALIDATE_TIMESTAMPS,,}" != "no" ]] \ + && [[ "${OPCACHE_VALIDATE_TIMESTAMPS,,}" != "false" ]] \ + && [[ "${OPCACHE_VALIDATE_TIMESTAMPS}" != 1 ]] \ + && [[ "${OPCACHE_VALIDATE_TIMESTAMPS,,}" != "yes" ]] \ + && [[ "${OPCACHE_VALIDATE_TIMESTAMPS,,}" != "true" ]] ; then + OPCACHE_VALIDATE_TIMESTAMPS="" + warn "Value for '${_key}' must be bool [1/0/true/false/yes/no]." + continue + fi + echo "" + echo "OPCACHE_VALIDATE_TIMESTAMPS: $OPCACHE_VALIDATE_TIMESTAMPS" + echo "OPCACHE_VALIDATE_TIMESTAMPS: ${OPCACHE_VALIDATE_TIMESTAMPS,,}" + echo "" + if [[ "${OPCACHE_VALIDATE_TIMESTAMPS,,}" = "no" ]] \ + || [[ "${OPCACHE_VALIDATE_TIMESTAMPS,,}" = "false" ]]; then + OPCACHE_VALIDATE_TIMESTAMPS=0 + elif [[ "${OPCACHE_VALIDATE_TIMESTAMPS,,}" = "yes" ]] \ + || [[ "${OPCACHE_VALIDATE_TIMESTAMPS,,}" = "true" ]]; then + OPCACHE_VALIDATE_TIMESTAMPS=1 + fi +done + + +# - php.ini - opcache extension: opcache.validate_timestamps +_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}') +fi +[[ -z "$_OPCACHE_ERROR_LOG" ]] && _OPCACHE_ERROR_LOG=$_default_val + +_foud=false +declare -i __number=4 +OPTION="" +_CHOOSE="" +echo "" +echo "" +echo -e "Set value for Parameter \033[32m${_key}\033[m (string)" +echo "" +if [[ "$_OPCACHE_ERROR_LOG" = "/var/log/apache2/opcache_errors.log" ]] ; then + echo -e " \033[1m[1] /var/log/apache2/opcache_errors.log\033[m" + _foud=true + __higlighted=1 +else + echo " [1] /var/log/apache2/opcache_errors.log" +fi +if [[ "$_OPCACHE_ERROR_LOG" = "/var/log/nginx/opcache_errors.log" ]] ; then + echo -e " \033[1m[2] /var/log/nginx/opcache_errors.log\033[m" + _foud=true + __higlighted=2 +else + echo " [2] /var/log/nginx/opcache_errors.log" +fi +if [[ -n "$_OPCACHE_ERROR_LOG" ]] && ! $_foud; then + echo -e " \033[1m[3] $_OPCACHE_ERROR_LOG\033[m" + echo -e " [4] other location" + echo -e " [5] \033[33m-- leave empty -\033[m" + __higlighted=3 + __number=5 +elif ! $_found ; then + echo -e " [\033[1m3] other location"\033[m + echo -e " [4] \033[33m-- leave empty -\033[m" + __higlighted=3 +else + echo -e " [3] other location" + echo -e " [4] \033[33m-- leave empty -\033[m" +fi + +echo "" +echo "Type a number or press to choose highlighted value" +echo "" +echononl "Eingabe: " +while [[ -z "$_CHOOSE" ]]; do + read OPTION + [[ -z "$OPTION" ]] && OPTION=$__higlighted + case $OPTION in + 1) + _CHOOSE=1 + OPCACHE_ERROR_LOG="/var/log/apache2/opcache_errors.log" + ;; + 2) + _CHOOSE=2 + OPCACHE_ERROR_LOG="/var/log/nginx/opcache_errors.log" + ;; + 3) + _CHOOSE=3 + if [[ $__number -eq 5 ]] ; then + OPCACHE_ERROR_LOG="$_OPCACHE_ERROR_LOG" + else + OPCACHE_ERROR_LOG="OTHER" + fi + ;; + 4) + _CHOOSE=4 + if [[ $__number -eq 5 ]] ; then + OPCACHE_ERROR_LOG="OTHER" + else + OPCACHE_ERROR_LOG="" + fi + ;; + 5) + if [[ $__number -eq 5 ]] ; then + _CHOOSE=5 + OPCACHE_ERROR_LOG="EMPTY" + else + echo "" + echo -e "\tFalsche Eingabe ! [1/2/3/4] or type for the highlited default" + echo "" + echononl "Eingabe: " + fi + ;; + *) + if [[ $__number -eq 5 ]] ; then + echo "" + echo -e "\tFalsche Eingabe ! [1/2/3/4/5] or type for the highlited default" + echo "" + echononl "Eingabe: " + else + echo "" + echo -e "\tFalsche Eingabe ! [1/2/3/4] or type for the highlited default" + echo "" + echononl "Eingabe: " + fi + ;; + esac +done + + +echo "" +if [[ "$OPCACHE_ERROR_LOG" = "OTHER" ]]; then + + OPCACHE_ERROR_LOG="" + + while [[ "X$OPCACHE_ERROR_LOG" = "X" ]]; do + echononl "${_key}: " + read OPCACHE_ERROR_LOG + if [ "X$OPCACHE_ERROR_LOG" = "X" ]; then + warn "Value for '${_key}'must not be empty." + fi + if [[ ! -d "$(dirname "$OPCACHE_ERROR_LOG")" ]]; then + warn "Directory where log file should leave dows not exist!" + OPCACHE_ERROR_LOG="" + fi + done +fi + + + +echo "" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo -e "Set Symlinks ? [ \033[33myes/no\033[m ]" +echo "" + +echo "" +if [ ! -h /usr/local/php ] ; then + SYMLINK_PHP=true + echo "Symlink /usr/local/php -> /usr/local/php-$PHP_MAIN_VERSION will be set." +else + OK="" + while [ "X$OK" = "X" ] + do + echononl "Set symlink /usr/local/php -> /usr/local/php-$PHP_MAIN_VERSION ? [ $_SYMLINK_PHP ]: " + read OK + __to_lower=`echo $OK | tr '[:upper:]' '[:lower:]' | tr -d ' '` + if [ "X$OK" = "X" ]; then + OK=$_SYMLINK_PHP + break + fi + if [ "$__to_lower" = "yes" -o "$__to_lower" = "no" ]; then + OK=$__to_lower + break + fi + echo "" + echo -e "\t\033[31mWrong entry !! Try again..\033[m" + echo "" + OK= + done + if [ "$OK" = "yes" ]; then + SYMLINK_PHP=true + else + SYMLINK_PHP=false + fi +fi + +echo "" +if [ ! -h /usr/local/php-${PHP_MAIN_VERSION} ] ; then + SYMLINK_PHP_MAIN_VERSION=true + echo "Symlink /usr/local/php-$PHP_MAIN_VERSION -> `basename $PREFIX_PHP` will be set." +else + OK="" + while [ "X$OK" = "X" ]; do + echononl "Set symlink /usr/local/php-$PHP_MAIN_VERSION -> `basename $PREFIX_PHP` ? [ $_SYMLINK_PHP_MAIN_VERSION ]: " + read OK + __to_lower=`echo $OK | tr '[:upper:]' '[:lower:]' | tr -d ' '` + if [ "X$OK" = "X" ]; then + OK=$_SYMLINK_PHP_MAIN_VERSION + break + fi + if [ "$__to_lower" = "yes" -o "$__to_lower" = "no" ]; then + OK=$__to_lower + break; + fi + echo "" + echo -e "\t\033[31mWrong entry !! Try again..\033[m" + echo "" + OK= + done + if [ "$OK" = "yes" ]; then + SYMLINK_PHP_MAIN_VERSION=true + else + SYMLINK_PHP_MAIN_VERSION=false + fi + +fi + if $WITH_PHP_FPM_SUPPORT && $WITH_MOD_PHP ; then if [ -f "/etc/init.d/php-${VERSION}-fpm" ];then echo "" @@ -1186,33 +1611,43 @@ echo -e "\033[32m--\033[m" echo "" echo -e "\033[21G\033[32mStart PHP Installation with the following Parameters \033[m" echo "" -echo "OS distribution..................: $os_dist" -echo "OS version.......................: $os_version (${os_codename})" +echo "OS distribution......................: $os_dist" +echo "OS version...........................: $os_version (${os_codename})" echo "" -echo "PHP version......................: $VERSION" -echo "PHP main version.................: $PHP_MAIN_VERSION" -echo "PHP major version................: $PHP_MAJOR_VERSION" -echo "PHP minor version................: $PHP_MINOR_VERSION" -echo "PHP patch level..................: $PHP_PATCH_LEVEL" +echo "PHP version..........................: $VERSION" +echo "PHP main version.....................: $PHP_MAIN_VERSION" +echo "PHP major version....................: $PHP_MAJOR_VERSION" +echo "PHP minor version....................: $PHP_MINOR_VERSION" +echo "PHP patch level......................: $PHP_PATCH_LEVEL" echo "" -echo "PHP configuration (php.ini)" -echo " memory_limit..................: $MEMORY_LIMIT" -echo " max_execution_time............: $MAX_EXECUTION_TIME" -echo " max_input_time................: $MAX_INPUT_TIME" -echo " upload_max_filesize...........: $UPLOAD_MAX_FILESIZE" -echo " post_max_size.................: $POST_MAX_SIZE" +echo "PHP base configuration (php.ini)" +echo " memory_limit......................: $MEMORY_LIMIT" +echo " max_execution_time................: $MAX_EXECUTION_TIME" +echo " max_input_time....................: $MAX_INPUT_TIME" +echo " upload_max_filesize...............: $UPLOAD_MAX_FILESIZE" +echo " post_max_size.....................: $POST_MAX_SIZE" echo "" -echo "Apache User......................: $HTTPD_USER" -echo "Apache Group.....................: $HTTPD_GROUP" +echo "Parameters for 'opcache' extension" +echo " opcache.enable....................: $OPCACHE_ENABLE" +echo " opcache.enable_cli................: $OPCACHE_ENABLE_CLI" +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.revalidate_freq...........: $OPCACHE_REVALIDATE_FREQ" +echo " opcache.error_log.................: $OPCACHE_ERROR_LOG" +echo "" +echo "Apache User..........................: $HTTPD_USER" +echo "Apache Group.........................: $HTTPD_GROUP" echo "" #echo "MySQL Installation directory..: $MYSQL_INSTALL_DIR" #echo "" -echo "Install with FPM support.........: $WITH_PHP_FPM_SUPPORT" +echo "Install with FPM support.............: $WITH_PHP_FPM_SUPPORT" if $WITH_PHP_FPM_SUPPORT ; then - echo " Activate FPM init script......: $ACTIVATE_PHP_FPM_INIT_SCRIPT" - echo " Set umask 0002 for FPM........: $SET_UMASK" + echo " Activate FPM init script..........: $ACTIVATE_PHP_FPM_INIT_SCRIPT" + echo " Set umask 0002 for FPM............: $SET_UMASK" echo "" - echo " PHP FPM Socket definition(s)..: ${FPM_DEFAULT_POOL}.php-fpm.conf" + echo " PHP FPM Socket definition(s)......: ${FPM_DEFAULT_POOL}.php-fpm.conf" if [[ ${#existing_fpm_definition_arr[@]} -gt 0 ]] ; then for _file in "${existing_fpm_definition_arr[@]}" ; do [[ "$(basename "$_file")" = "${FPM_DEFAULT_POOL}.php-fpm.conf" ]] && continue @@ -1222,25 +1657,25 @@ if $WITH_PHP_FPM_SUPPORT ; then echo "" echo "PHP FPM Pool Definitions (php-fpm.conf or included files)" - echo " pm.start_servers..............: $FPM_POOL_START_SERVER" - echo " pm.min_spare_servers..........: $FPM_POOL_MIN_SPARE" - 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 " pm.start_servers..................: $FPM_POOL_START_SERVER" + echo " pm.min_spare_servers..............: $FPM_POOL_MIN_SPARE" + 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" fi if [[ $PHP_MAJOR_VERSION -ge 7 ]]; then echo "" - echo "Support legacy SQL functions.....: $LEGACY_SQL_FUNCTION_SUPPORT" + echo "Support legacy SQL functions.........: $LEGACY_SQL_FUNCTION_SUPPORT" fi echo "" -echo "Install with systemd Support.....: $SYSTEMD_EXISTS" +echo "Install with systemd Support.........: $SYSTEMD_EXISTS" echo "" -echo "Install with (apache) mod_php....: $WITH_MOD_PHP" +echo "Install with (apache) mod_php........: $WITH_MOD_PHP" if $WITH_MOD_PHP ; then - echo " Apache Version.............: $APACHE_VERSION" + echo " Apache Version.................: $APACHE_VERSION" fi echo "" if $SYMLINK_PHP_MAIN_VERSION -o $SYMLINK_PHP ; then @@ -1254,25 +1689,25 @@ if $SYMLINK_PHP_MAIN_VERSION -o $SYMLINK_PHP ; then fi echo "" echo "" -echo "Install extern freetype .........: $_install_freetype" +echo "Install extern freetype .............: $_install_freetype" if $_install_freetype ; then - echo " freetype version .............: $FREETYPE_VERSION" + echo " freetype version .................: $FREETYPE_VERSION" fi echo "" -echo "Install extern libicu ...........: $_install_icu4c" +echo "Install extern libicu ...............: $_install_icu4c" if $_install_icu4c ; then - echo " icu4c version ................: $ICU4C_VERSION" + echo " icu4c version ....................: $ICU4C_VERSION" fi echo "" -echo "Install extern libxml2 ..........: $_install_libxml2" +echo "Install extern libxml2 ..............: $_install_libxml2" if $_install_libxml2 ; then - echo " libxml2 version ..............: $LIBXML2_VERSION" + echo " libxml2 version ..................: $LIBXML2_VERSION" fi echo "" -echo "Skip 'updatedb'..................: $SKIP_UPDATE_DB" +echo "Skip 'updatedb'......................: $SKIP_UPDATE_DB" echo "" echo "" -echo "Vserver Guest System.............: $VSERVER_GUEST" +echo "Vserver Guest System.................: $VSERVER_GUEST" echo "" echononl "Start with that configuration? [yes/no]: " @@ -3937,6 +4372,11 @@ else if [ "$?" = "0" ]; then echo_ok + # Add to php.ini + # + # extension=apcu.so + # apc.enable_cli = 1 + # echononl "\tphp.ini: extension=apcu .." _extension="apcu.so" echo "" >> ${_logdir}/pecl_install.log @@ -6049,39 +6489,43 @@ if [[ -n "$zend_extension_opcache" ]];then ## - set opcache.error_log="/var/log/apache2/ ## - echononl "\tphp.ini: opcache.error_log = /var/log/apache2/opcache_errors.log" - _key="opcache.error_log" - _val="/var/log/apache2/opcache_errors.log" - 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 + if [[ -z "$OPCACHE_ERROR_LOG" ]] ; then + echo_skipped else - echo_failed - fi - - if [[ ! -d "$(dirname "$_val")" ]] ; then - echononl "\tCretae directory '$(dirname "$_val")'.." - mkdir "$(dirname "$_val")" > /dev/null 2>&1 - if [[ $? -eq 0 ]] ; then + _key="opcache.error_log" + _val="$OPCACHE_ERROR_LOG" + 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 + + if [[ ! -d "$(dirname "$_val")" ]] ; then + echononl "\tCretae directory '$(dirname "$_val")'.." + mkdir "$(dirname "$_val")" > /dev/null 2>&1 + if [[ $? -eq 0 ]] ; then + echo_ok + else + echo_failed + fi + fi + touch $_val + chown ${HTTPD_USER}:$HTTPD_GROUP $_val fi - touch $_val - chown ${HTTPD_USER}:$HTTPD_GROUP $_val ## - set opcache.enable=1 ## - echononl "\tphp.ini: opcache.enable = 1 .." opcache_key="opcache.enable" - opcache_val=1 + opcache_val=$OPCACHE_ENABLE 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=$? @@ -6099,7 +6543,7 @@ if [[ -n "$zend_extension_opcache" ]];then ## - echononl "\tphp.ini: opcache.enable_cli = 1 .." opcache_key="opcache.enable_cli" - opcache_val=1 + opcache_val=$OPCACHE_ENABLE_CLI 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=$? @@ -6113,65 +6557,11 @@ if [[ -n "$zend_extension_opcache" ]];then echo_failed fi - ## - set opcache.interned_strings_buffer=16 - ## - - echononl "\tphp.ini: opcache.interned_strings_buffer = 16 .." - opcache_key="opcache.interned_strings_buffer" - opcache_val=16 - 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.max_accelerated_files=10000 - ## - - echononl "\tphp.ini: opcache.max_accelerated_files = 10000 .." - opcache_key="opcache.max_accelerated_files" - opcache_val=10000 - 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.validate_timestamps=0 - ## - - echononl "\tphp.ini: opcache.validate_timestamps = 1 .." - opcache_key="opcache.validate_timestamps" - opcache_val=0 - 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.memory_consumption=128 + ## - set opcache.memory_consumption ## - echononl "\tphp.ini: opcache.memory_consumption = 128 .." opcache_key="opcache.memory_consumption" - opcache_val=128 + opcache_val=$OPCACHE_MEMORY_CONSUMPTION 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=$? @@ -6185,6 +6575,84 @@ if [[ -n "$zend_extension_opcache" ]];then echo_failed fi + ## - set opcache.interned_strings_buffer + ## - + echononl "\tphp.ini: opcache.interned_strings_buffer = 16 .." + 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 + 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.max_accelerated_files + ## - + echononl "\tphp.ini: opcache.max_accelerated_files = 10000 .." + 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 + 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.validate_timestamps + ## - + echononl "\tphp.ini: opcache.validate_timestamps = 1 .." + 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 + 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 .." + 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 + 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 + + + ## ---------- + ## not configurable opcache settings + ## ---------- + + ## - set opcache.save_comments=1 ## - echononl "\tphp.ini: opcache.save_comments = 1 .." @@ -6203,24 +6671,6 @@ if [[ -n "$zend_extension_opcache" ]];then echo_failed fi - ## - set opcache.revalidate_freq=60 - ## - - echononl "\tphp.ini: opcache.revalidate_freq = 1 .." - opcache_key="opcache.revalidate_freq" - opcache_val=60 - 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.fast_shutdown=0 ## - ## - setting opcache.fast_shutdown=1 causes the following error in apache error_log: