#!/bin/bash
Principal() {
clear ; read -p '
####################################################
######## SISTEMA DE MANIPULAÇÃO DE DOMÍNIOS ########
## ##
## Esse sistema foi escrito por Henrique Fagundes ##
## todos os direitos são reservardos. ##
## ##
############## www.aprendendolinux.com #############
####################################################
O que deseja fazer?
1. Adicionar um novo domínio
2. Adicionar um sub-domínio
3. Remover um domínio
4. Remover um sub-domínio
5. Listar domínios
6. Sair
Qual a opção desejada? ' opcao
case $opcao in
1) Adicionar_Dominio ;;
2) Adicionar_Subdominio ;;
3) Remover_Dominio ;;
4) Remover_Subdominio ;;
5) Listar_Dominios ;;
6) exit ;;
*) echo ; echo 'Opção desconhecida, tente novamente!' ; sleep 3 ; clear ; Principal ;;
esac
}
Adicionar_Dominio() {
clear ; read -p '
####################################################
# Aqui você vai inserir o PREFIXO do domínio que #
# deseja ADICIONAR. Por exemplo: se seu dominio #
# for "linux.com.br", o PREFIXO é "linux". #
####################################################
Então, qual o PREFIXO do domínio que deseja ADICIONAR? ' prefixo
clear ; read -p '
####################################################
# Agora você deve inserir o SUFIXO do domínio que #
# deseja ADICIONAR. Por exemplo: se seu domínio #
# for "linux.com.br", o SUFIXO é "com.br". #
####################################################
Então, qual o SUFIXO do domínio que deseja ADICIONAR? ' sufixo
useradd $prefixo -m -d /var/www/$prefixo.$sufixo -k /etc/skel -s /bin/bash
usermod -g apache $prefixo
clear ; read -p '
####################################################
# Muito bem, agora precisamos definir a senha para #
# o seu domínio. A senha aparecera em texto puro, #
# entao, tenha certeza que nao tenha ninguem por #
# perto olhando, ok? Cuide da seguranca! #
####################################################
Qual a senha que você deseja para esse domínio? ' senha
echo "$prefixo":"$senha" | chpasswd
mkdir /var/log/httpd/$prefixo.$sufixo /etc/httpd/conf.d/$prefixo.$sufixo /var/www/$prefixo.$sufixo/www
versao_php_raiz_do_site() {
clear ; read -p '
Qual versão do PHP a raiz do site (www.'$prefixo'.'$sufixo') vai usar?
1. 5.6
2. 7.3
Qual a opção desejada? ' opcao
case $opcao in
1) 5.6 ;;
2) 7.3 ;;
*) echo ; echo 'Opção desconhecida, tente novamente!' ; versao_php_raiz_do_site ;;
esac
}
5.6() {
versao_php="56"
}
7.3() {
versao_php="73"
}
versao_php_raiz_do_site
cat > /etc/httpd/conf.d/$prefixo.$sufixo/www.conf << EOF
ServerName www.$prefixo.$sufixo
DocumentRoot /var/www/$prefixo.$sufixo/www
SetHandler "proxy:fcgi://127.0.0.1:90$versao_php"
DirectoryIndex index.php index.htm index.html
ErrorLog /var/log/httpd/$prefixo.$sufixo/www-error.log
CustomLog /var/log/httpd/$prefixo.$sufixo/www-access.log combined
EOF
chmod -R 755 /var/www/$prefixo.$sufixo
chown apache:apache /var/www/$prefixo.$sufixo
chown -R $prefixo:apache /var/www/$prefixo.$sufixo/*
chown $prefixo:$prefixo /var/www/$prefixo.$sufixo/.bas* 2>&- 1>&-
chown $prefixo:$prefixo /var/www/$prefixo.$sufixo/.profile 2>&- 1>&-
systemctl restart httpd
clear ; echo "Domínio $prefixo.$sufixo adicionado com sucesso" ; sleep 3 ; clear ; Principal
}
Adicionar_Subdominio() {
clear ; read -p '
####################################################
# Aqui você vai inserir o PREFIXO do domínio no #
# qual deseja ADICIONAR um SUB-DOMÍNIO. Por #
# exemplo: Se seu dominio for "linux.com.br", o #
# PREFIXO é "linux". #
####################################################
Então, qual o PREFIXO do domínio no qual você pretende adicionar o SUB-DOMÍNIO? ' prefixo
clear ; read -p '
####################################################
# Agora você deve inserir o SUFIXO do domínio no #
# qual deseja ADICIONAR um SUB-DOMÍNIO. Por #
# exemplo: se seu domínio "linux.com.br", o SUFIXO #
# é "com.br". #
####################################################
Então, qual o SUFIXO do domínio no qual você pretende adicionar o SUB-DOMÍNIO? ' sufixo
clear ; read -p '
####################################################
# Agora você deve inserir o PREFIXO DO SUBDOMÍNIO. #
# Por exemplo, se você deseja criar o sub-domínio #
# centos.linux.com.br, insira o PREFIXO "centos". #
####################################################
Então, qual o PREFIXO do SUB-DOMÍNIO que deseja criar? ' subdominio
VERIFICA=$(ls -l /etc/httpd/conf.d/ | awk '/^d/ { print $9 }' | grep $prefixo.$sufixo)
if [ "$VERIFICA" = "$prefixo.$sufixo" ]
then
mkdir /var/www/$prefixo.$sufixo/$subdominio
chmod -R 775 /var/www/$prefixo.$sufixo/$subdominio
versao_php_do_subdominio() {
clear ; read -p '
Qual versão do PHP a raiz do site ('$subdominio'.'$prefixo'.'$sufixo') vai usar?
1. 5.6
2. 7.3
Qual a opção desejada? ' opcao
case $opcao in
1) 5.6 ;;
2) 7.3 ;;
*) echo ; echo 'Opção desconhecida, tente novamente!' ; versao_php_do_subdominio ;;
esac
}
5.6() {
versao_php="56"
}
7.3() {
versao_php="73"
}
versao_php_do_subdominio
cat > /etc/httpd/conf.d/$prefixo.$sufixo/$subdominio.conf << EOF
ServerName $subdominio.$prefixo.$sufixo
ServerAlias $subdominio
DocumentRoot /var/www/$prefixo.$sufixo/$subdominio
SetHandler "proxy:fcgi://127.0.0.1:90$versao_php"
DirectoryIndex index.php index.htm index.html
ErrorLog /var/log/httpd/$prefixo.$sufixo/$subdominio-error.log
CustomLog /var/log/httpd/$prefixo.$sufixo/$subdominio-access.log combined
EOF
chmod -R 755 /var/www/$prefixo.$sufixo
chown apache:apache /var/www/$prefixo.$sufixo
chown -R $prefixo:apache /var/www/$prefixo.$sufixo/*
chown $prefixo:$prefixo /var/www/$prefixo.$sufixo/.bas* 2>&- 1>&-
chown $prefixo:$prefixo /var/www/$prefixo.$sufixo/.profile 2>&- 1>&-
systemctl restart httpd
clear ; echo "Você criou com sucesso o sub-domínio $subdominio.$prefixo.$sufixo" ; sleep 3 ; clear ; Principal
else
clear ; echo ; echo "Não foi possível criar o sub-domínio desejado porque o domínio $prefixo.$sufixo não existe.
Tente novamente, dessa vez com mais atenção!" ; sleep 3 ; clear ; Principal
fi
}
Remover_Dominio() {
clear ; read -p '
####################################################
# Aqui você vai inserir o PREFIXO do domínio que #
# deseja REMOVER. Por exemplo: se seu dominio for #
# "linux.com.br", o PREFIXO é "linux". #
####################################################
Então, qual o PREFIXO do domínio que deseja remover? ' prefixo
clear ; read -p '
####################################################
# Agora você deve inserir o SUFIXO do domínio que #
# deseja REMOVER. Por exemplo: se seu domínio for #
# "linux.com.br", o SUFIXO é "com.br". #
####################################################
Então, qual o SUFIXO do domínio que deseja remover? ' sufixo
VERIFICA=$(ls -l /etc/httpd/conf.d/ | awk '/^d/ { print $9 }' | grep $prefixo.$sufixo)
if [ "$VERIFICA" = "$prefixo.$sufixo" ]
then
echo ; echo "Removendo o domínio $prefixo.$sufixo, por favor aguarde..." ; sleep 3
groupdel $prefixo
userdel -f $prefixo 2>&- 1>&-
rm -rf /var/www/$prefixo.$sufixo /var/log/httpd/$prefixo.$sufixo /etc/httpd/conf.d/$prefixo.$sufixo
systemctl restart httpd
clear ; echo "Domínio $prefixo.$sufixo removido com sucesso!" ; sleep 3 ; clear ; Principal
else
clear ; echo ; echo "O domínio que você tentou remover foi "$prefixo.$sufixo" e esse domínio não foi encontrado.
Tente novamente, digitando corretamente o prefixo e o sufixo do domínio." ; sleep 3 ; clear ; Principal
fi
}
Remover_Subdominio() {
clear ; read -p '
####################################################
# Aqui você vai inserir o NOME COMPLETO do domínio #
# no qual deseja REMOVER um SUB-DOMÍNIO. Por #
# exemplo: "linux.com.br". #
####################################################
Então, qual o NOME COMPLETO do DOMÍNIO no qual deseja remover o SUB-DOMÍNIO? ' dominio
clear ; read -p '
####################################################
# Agora você deve inserir o PREFIXO DO SUBDOMÍNIO #
# que deseja remover. Por exemplo, se você deseja #
# remover o sub-domínio debian.linux.com.br, #
# insira o PREFIXO "debian". #
####################################################
Então, qual o PREFIXO do SUB-DOMÍNIO que deseja remover? ' subdominio
VERIFICA=$(ls /etc/httpd/conf.d/$dominio/ | grep $subdominio.conf | awk '{ print $1 }')
if [ "$VERIFICA" = "$subdominio.conf" ]
then
echo ; echo "Removendo o sub-domínio $subdominio.$dominio, por favor aguarde..." ; sleep 3
rm -rf /var/www/$dominio/$subdominio /etc/httpd/conf.d/$dominio/$subdominio.conf /var/log/httpd/$dominio/$subdominio_*
systemctl restart httpd
clear ; echo "O sub-domínio $subdominio.$dominio foi removido com sucesso!" ; sleep 3 ; clear ; Principal
else
clear ; echo ; echo "O Sub-domínio que você tentou remover foi "$subdominio.$dominio" e esse sub-domínio não foi encontrado.
Tente novamente, digitando corretamente o domínio completo e o prefixo do sub-domínio." ; sleep 3 ; clear ; Principal
fi
}
Listar_Dominios(){
clear ; echo '
####################################################
# Esse é o resultado do comando abaixo: #
# $ sudo ls /etc/httpd/conf.d/ #
# Essa lista contém todos os domínios hospedados #
# nesse servidor. #
####################################################
'
ls -l /etc/httpd/conf.d/ | awk '/^d/ { print $9 }'
Voltar(){
read -p '
Digite "1" para voltar e "2" para sair: ' listar
case $listar in
1) opcao_1 ;;
2) opcao_2 ;;
esac
}
opcao_1() {
clear
Principal
}
opcao_2() {
exit
}
Voltar
}
clear ; Principal