Quando você se torna freelancer ou empreendedor a automatização passa a ser um ponto ainda mais importante no seu dia a dia. Cada tarefa automatizada significa aumento de lucro a longo prazo, mais tempo para estudar ou descansar.
Pensando em automatização, recomendo que você aprenda como usar o GruntJS neste ótimo artigo do Fernahhh.
Eu administro um servidor AWS para meus projetos e projeto de alguns clientes, é um Ubuntu Server com Apache. Configurar domínios, principalmente localmente no meu ambiente de desenvolvimento, se tornou uma tarefa comum e que levava alguns minutos.
A cada novo projeto que vou trabalhar (seja front-end ou back-end) eu aponto um novo domínio para meu servidor local (hosts) e crio um domínio no meu apache apontando para o repositório do projeto.
Shellscript para automatizar a criação de domínios no Apache
Resolvi utilizar shellscript para automatizar a criação de domínios no Apache. Encontrei um script e adaptei para a minha necessidade.
Este script rece um parâmetro, que é o domínio que será criado.
Exemplo:
sh create-site andafter.org
As ações do script:
- Cria os diretórios para o domínio
- /var/www/$dominio
- /var/www/$dominio/public
- /var/www/$dominio/logs
- Cria um arquivo de configuração com o nome do comínio em /etc/apache2/sites-available
- Cria um link simbólico para ativar o domínio (sites-enabled)
create-site.sh
!/bin/bash
################
# Script for creating Virtual Servers On Apache
# Check for the correct parameters
if [ $# -eq 0 ]; then
echo 'Você precisa passar o domínio a ser criado como parâmetro'
echo 'Uso: create-site gssolutions.com.br'
exit 0
fi
# Assign Variables
SITE=$1
# Create the Directory which will contain your Virtual Site
if [ ! -d /var/www/$SITE ]; then
mkdir /var/www/$SITE
mkdir /var/www/$SITE/public
mkdir /var/www/$SITE/logs
fi
# Create the Config file for your virtual site
echo "<virtualhost *:80="">"> /etc/apache2/sites-available/$SITE
echo "# Admin email, Server Name (domain name) and any aliases" >> /etc/apache2/sites-available/$SITE
echo " ServerAdmin [email protected]" >> /etc/apache2/sites-available/$SITE
echo " ServerName $SITE" >> /etc/apache2/sites-available/$SITE
echo " ServerAlias www.$SITE" >> /etc/apache2/sites-available/$SITE
echo " ">>/etc/apache2/sites-available/$SITE
echo " # Index file and Document Root (where the public files are located)" >> /etc/apache2/sites-available/$SITE
echo " DirectoryIndex index.html" >> /etc/apache2/sites-available/$SITE
echo " DocumentRoot /var/www/$SITE/public" >> /etc/apache2/sites-available/$SITE
echo " LogLevel warn" >> /etc/apache2/sites-available/$SITE
echo " ErrorLog /var/www/$SITE/logs/error.log" >> /etc/apache2/sites-available/$SITE
echo " CustomLog /var/www/$SITE/logs/access.log combined" >> /etc/apache2/sites-available/$SITE
echo "</virtualhost>" >> /etc/apache2/sites-available/$SITE
echo "<directory \"="" var="" www="" $site="" public\"="">" >> /etc/apache2/sites-available/$SITE
echo " Options Indexes FollowSymLinks" >> /etc/apache2/sites-available/$SITE
echo " AllowOverride All" >> /etc/apache2/sites-available/$SITE
echo " Order allow,deny" >> /etc/apache2/sites-available/$SITE
echo " Allow from all" >> /etc/apache2/sites-available/$SITE
echo "</directory>" >> /etc/apache2/sites-available/$SITE
# Create the Sym Link to enable your Virtual Site
if [ ! -L /etc/apache2/sites-enabled/$SITE ]; then
ln -s /etc/apache2/sites-available/$SITE /etc/apache2/sites-enabled/
fi
Se você quiser pode adicionar ao final do script o comando para dar reload nas configurações do Apache.
Ilustra do “apache” é do ~pitx