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