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_apache2_seta_ip_vhost.sh
#!/bin/bash

# FUNCTIONS
. /etc/lwcorp/lwcorp.functions

#
# SE O SERVIDOR NAO POSSUIR IP ADICIONAL, O SCRIPT PARA
#

if [[ -z $SERVERIPADDR ]]; then
    echo "$LOGDATE - [O servidor nao possui endereco IP adicional. O processo foi cancelado]" >> $LOGFILE
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEINFO" --msgbox "\nESTE SERVIDOR NAO POSSUI ENDERECO IP ADICIONAL.\n\nABORTANDO." 9 65
    exit 1
fi

#
# SE O CONFIGTEST DO APACHE DER ERRO, O SCRIPT PARA
#

/usr/sbin/apache2ctl configtest 2> /dev/null

if [ $? -ne "0" ];then
    echo "$LOGDATE - [Existe um erro no 'configtest' do Apache2. Processo abortado]" >> $LOGFILE
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nEXISTE UM ERRO NO CONFIGTEST DO APACHE.\n\nCORRIJA ISSO ANTES DE PROSSEGUIR." 9 65
    exit 1
fi

#
# SELECIONA A HOSPEDAGEM
#

FTP_USER_SELECTED=$(dialog --backtitle "$LWCORPHEADER" --stdout --radiolist "\nSELECIONE A HOSPEDAGEM:" 0 0 0 `for a in $CSUSERS; do echo "$a '' off"; done`)

if [ -z $FTP_USER_SELECTED ];then
    echo "$LOGDATE - [Analista nao selecionou a hospedagem e/ou cancelou a configuracao de IP em vhost]" >> $LOGFILE
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nCONFIGURACAO CANCELADA." 7 65
    exit 1

else
    echo "$LOGDATE - [Selecionada hospedagem '$FTP_USER_SELECTED']" >> $LOGFILE
fi

#
# VALIDA USUARIO
#

getent passwd $FTP_USER_SELECTED >/dev/null

if [ $? -ne "0" ];then
    echo "$LOGDATE - [Analista informou usuario inexistente. Cancelada configuracao de IP em vhost]" >> $LOGFILE
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nUSUARIO NAO ENCONTRADO.\n\nCANCELANDO A CONFIGURACAO." 9 65
    exit 1
fi

#
# ENDERECOS IP PRESENTES NO SERVIDOR
#


IP_ADDR_SELECTED=$(dialog --backtitle "$LWCORPHEADER" --stdout --radiolist "\nSELECIONE O ENDERECO IP:" 0 0 0 `for a in $SERVERIPADDR; do echo "$a '' off"; done`)

if [ -z $IP_ADDR_SELECTED ];then
    echo "$LOGDATE - [Analista nao selecionou um IP e/ou cancelou a configuracao de IP em vhost]" >> $LOGFILE
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nVOCE NAO SELECIONOU UM ENDERECO IP.\n\nCANCELANDO A CONFIGURACAO." 9 65
    exit 1
fi

grep -w $IP_ADDR_SELECTED /etc/apache2/sites-enabled/*.ws-ssl >/dev/null

if [ $? -eq "0" ];then
    echo "$LOGDATE - [Analista informou IP ja em uso em outro vhost. Cancelada configuracao de IP em vhost]" >> $LOGFILE;
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nO IP '$IP_ADDR_SELECTED' JA ESTA EM USO EM UM VHOST." 7 65
    exit 1
fi

#
# CONFIRMACAO DO USUARIO
#

dialog --backtitle "$LWCORPHEADER" --title "$TITLECONFIRMACAO" --yesno "\nUSER: $FTP_USER_SELECTED\nIP: $IP_ADDR_SELECTED\n\nESTA ALTERACAO REQUER UM RESTART DO APACHE2.\n\nDESEJA PROSSEGUIR?" 11 65

case $? in
 0) ;;
 *) echo "$LOGDATE - [Processo cancelado pelo analista]" >> $LOGFILE;
    dialog --backtitle "$LWCORPHEADER" --title "$TITLECANCELADO" --msgbox "\nOK, CANCELADO." 7 65; exit 1;;
esac

#
# CONFIGTEST
#

/usr/sbin/apache2ctl configtest 2> /dev/null

case $? in
0) ;;
*) echo "$LOGDATE - [Processo cancelado devido a uma falha no Apache2 identificada pelo configtest]" >> $LOGFILE;
   dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nHA UM PROBLEMA NO CONFIGTEST DO APACHE.\n\nCORRIJA ISSO ANTES DE PROSSEGUIR." 9 65; exit 1;;
esac

sed -i "/VirtualHost/s/$(grep VirtualHost /etc/apache2/sites-available/$FTP_USER_SELECTED.hospedagemdesites.ws-ssl  | grep 443 | cut -d: -f1 | awk '{print$2}')/$IP_ADDR_SELECTED/g" /etc/apache2/sites-available/$FTP_USER_SELECTED.hospedagemdesites.ws-ssl

case $? in
    0) SEDSUCCESS="true";;
    *) SEDSUCCESS="false";;
esac

case $SEDSUCCESS in
    true) /usr/sbin/apache2ctl configtest 2> /dev/null;; 
    false) echo "$LOGDATE - [Erro na configuracao do IP '$IP_ADDR_SELECTED' para o site '$FTP_USER_SELECTED'.]" >> $LOGFILE;
           dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nOCORREU UM ERRO AO SETAR IP NO VHOST. VERIFICAR." 7 65; exit 1;;
esac

case $? in
 0) /usr/sbin/apache2ctl configtest 2> /dev/null;;
 *) echo "$LOGDATE - [Erro na configuracao do IP '$IP_ADDR_SELECTED' para o site '$FTP_USER_SELECTED' apos ajuste no Vhost.]" >> $LOGFILE;
    dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nOCORREU UM ERRO CONFIGTEST APOS SETAR IP NO VHOST." 7 65; exit 1;;
esac

case $? in
    0) echo "$LOGDATE - [Configurado IP '$IP_ADDR_SELECTED' no site '$FTP_USER_SELECTED'. O Apache2 foi reiniciado com sucesso]" >> $LOGFILE;
       dialog --backtitle "$LWCORPHEADER" --title "$TITLEINFO" --msgbox "\nCONFIGURACAO REALIZADA COM SUCESSO." 7 65; exit 0;;
    *) echo "$LOGDATE - [Erro na configuracao do IP '$IP_ADDR_SELECTED' no site '$FTP_USER_SELECTED'.]" >> $LOGFILE;
 dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nOCORREU UM ERRO NO RESTART DO APACHE2. VERIFICAR." 7 65; exit 1;;
esac