HEX
Server: Apache
System: Linux vpshost0650.publiccloud.com.br 4.4.79-grsec-1.lc.x86_64 #1 SMP Wed Aug 2 14:18:21 -03 2017 x86_64
User: bandeirantesbomb3 (10068)
PHP: 8.0.7
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //usr/local/locaweb/bin/lwcorp_php_muda_versao.sh
#!/bin/bash

# VARS e FUNCTIONS
. /etc/lwcorp/lwcorp.functions

#
# Antes de mais nada, faz um configtest
#

configtest

if [ $? != 0 ]; then

    dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --msgbox "\nHA UM PROBLEMA NA SAIDA DO CONFIGTEST DO APACHE2.\n\nVERIFIQUE ISSO ANTES DE PROSSEGUIR." 9 80
    exit 1

fi

dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --msgbox "\nOBSERVACOES:\n\n1 - ANTES DE PROSSEGUIR, DOCUMENTE ESTA MUDANCA EM UMA CHANGE;\n2 - AO FIM DA CONFIGURACAO, O APACHE2 SERA REINICIADO;" 10 80

#
# VERIFICA A VERSAO ATUAL DO PHP:
#

if [ -e "/etc/apache2/mods-enabled/php5.conf" ];then

    PHPCURRENT="php5"
    PHPVERSION="php54 php55 php56"

elif [ -e "/etc/apache2/mods-enabled/php54.conf" ];then

    PHPCURRENT="php54"
    PHPVERSION="php5 php55 php56"

elif [ -e "/etc/apache2/mods-enabled/php55.conf" ];then

    PHPCURRENT="php55"
    PHPVERSION="php5 php54 php56"

elif [ -e "/etc/apache2/mods-enabled/php56.conf" ];then

    PHPCURRENT="php56"
    PHPVERSION="php5 php54 php55"

elif [ -e "/etc/apache2/mods-enabled/suphp.conf" ];then

    PHPCURRENT="suphp"
    PHPVERSION="php5 php54 php55 php56"

else

    #
    # Se nao foi identificada versao do PHP:
    # 

    dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --yesno "\nESTE SERVIDOR NAO TEM PHP ATIVO\n" 7 80
    echo "$LOGDATE - [Servidor sem PHP ativo. Processo cancelado]" >> $LOGFILE
    exit 1

fi

if [ $PHPCURRENT == "suphp" ];then

    echo "$LOGDATE - [Analista informado sobre versao atual do PHP. Versao atual do PHP: $PHPCURRENT (PHP 5.3)]" >> $LOGFILE
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --yesno "\nESTE SERVIDOR UTILIZA SUPHP. AO MUDAR A VERSAO DO PHP, PASSARA PARA MOD_PHP.\n\nRECOMENDACAO: SOMENTE PROSSIGA APOS ALINHAR ISSO COM O CLIENTE.\n\nVOCE DESEJA PROSSEGUIR?\n" 11 80

    if [ $? -ne 0  ]; then

        dialog --backtitle "$LWCORPHEADER" --title "$TITLECANCELADO" --msgbox "\nPROCESSO CANCELADO.\n" 7 80
        echo "$LOGDATE - [Analista cancelou o processo]" >> $LOGFILE

    fi

elif [ $PHPCURRENT == "php5" ];then

    echo "$LOGDATE - [Informada versao atual do PHP. Versao atual do PHP: $PHPCURRENT (PHP 5.3)]" >> $LOGFILE
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --msgbox "\nINFORMACAO:\n\nVERSAO ATUAL DO PHP: $PHPCURRENT.\n\nOBSERVACAO: php5 = PHP 5.3 ;)" 11 80

else

    echo "$LOGDATE - [Informada versao atual do PHP. Versao atual do PHP: $PHPCURRENT]" >> $LOGFILE
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --msgbox "\nINFORMACAO:\n\nVERSAO ATUAL DO PHP: $PHPCURRENT." 9 80

fi


#
# Menu de selecao do novo PHP:
#

echo "$LOGDATE - [Aguardando analista selecionar nova versao desejada do PHP]" >> $LOGFILE
PHP_VERSION_SELECTED=$(dialog --backtitle "$LWCORPHEADER" --stdout --radiolist "\nSELECIONE O PHP DESEJADO:" 0 0 0 `for a in $PHPVERSION; do echo "$a '' off"; done`)

#
# Se o analista nao selecionou uma versao:
#

if [ -z $PHP_VERSION_SELECTED ];then
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nVOCE NAO SELECIONOU UMA DAS OPCOES.\n\nCONFIGURACAO CANCELADA." 9 65
    echo "$LOGDATE - [Analista nao selecionou a nova versao do PHP e/ou cancelou a configuracao]" >> $LOGFILE;
    exit 1
else
    echo "$LOGDATE - [Analista selecionou a nova versao $PHP_VERSION_SELECTED. Aguardando confirmacao]" >> $LOGFILE;
fi

#
# Confirmacao da mudanca de versao do PHP:
#

dialog --backtitle "$LWCORPHEADER" --title "$TITLECONFIRMACAO" --yesno "\nALTERACAO DE VERSAO DO PHP:\n\nVERSAO ATUAL: $PHPCURRENT\nNOVA VERSAO: $PHP_VERSION_SELECTED\n\nOBS.: PARA APLICAR A MUDANCA, O APACHE2 SERA REINICIADO.\n\nVOCE DESEJA PROSSEGUIR?\n" 14 65

#
# Aplica a nova versao se o analista responder "SIM" na confirmacao anterior ou cancela de escolheu "NAO".
#

if [ $? -eq 0 ]; then

    echo "$LOGDATE - [Analista confirmou alteracao de versao do PHP. Iniciando mudanca]" >> $LOGFILE

    # Desativa o PHP atual:
    echo "$LOGDATE - [Desativando PHP $PHPCURRENT]" >> $LOGFILE
    echo -e "\033[1;32mDesativando o $PHPCURRENT\033[0m"
    a2dismod $PHPCURRENT
    echo ""

    # Habilita o PHP selecionado
    echo "$LOGDATE - [Ativando PHP $PHP_VERSION_SELECTED]" >> $LOGFILE
    echo -e "\033[1;32mAtivando o $PHP_VERSION_SELECTED\033[0m"
    a2enmod $PHP_VERSION_SELECTED
    echo ""

    # Reinicia o Apache2:
    echo "$LOGDATE - [Reiniciando o Apache2]" >> $LOGFILE
    echo -e "\033[1;32mReiniciando o Apache2:\033[0m"
    /etc/init.d/apache2 stop && sleep 5 && /etc/init.d/apache2 start

    # Atualiza TAG do CF:
    rm -f /etc/default/locaweb/description/php5* > /dev/null

    if [ $PHP_VERSION_SELECTED == "php5" ];then
        touch /etc/default/locaweb/description/php53
    elif [ $PHP_VERSION_SELECTED == "php56" ];then
        touch /etc/default/locaweb/description/php
    else
        touch /etc/default/locaweb/description/$PHP_VERSION_SELECTED
    fi

else

#
# Se o analista respondeu NAO, cai fora:
#      
       echo "$LOGDATE - [Analista respondeu NAO ou teclou ENTER sem selecionar uma opcao. Configuracao cancelada]" >> $LOGFILE
       dialog --backtitle "$LWCORPHEADER" --title "$TITLECANCELADO" --msgbox "\nPROCESSO CANCELADO.\n" 7 80
       exit 1

fi

#
# Verifica se a configuracao validando saida do comando anterior
#

case $? in
    0) echo "$LOGDATE - [Apache2 reiniciado e nova versao do PHP aplicada com sucesso]" >> $LOGFILE ;
       dialog --backtitle "$LWCORPHEADER" --title "$TITLESUCESSO" --msgbox "\nVERSAO DO PHP ALTERADA COM SUCESSO\n\nNOVA VERSAO: ${PHP_VERSION_SELECTED}." 9 65; exit 0;;
    *) echo "$LOGDATE - [Erro no reinicio do Apache2. Verifique isso e tente novamente]" >> $LOGFILE ;
       dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nERRO NO REINICIO DO APACHE APOS TROCA DE VERSAO DO PHP.\n\nVERIFIQUE ISSO E TENTE NOVAMENTE." 9 65; exit 1;;
esac