hosts virtuais

Criando hosts virtuais na linha de comando do Linux

Ao iniciarmos um novo projeto com o CodeIgniter muitas vezes não queremos acessar usando http://localhost/diretorio-do-projeto. Para criar um endereço de host mais amigável, como por exemplo http://local.projeto-codeigniter precisamos configurar os arquivos do Apache manualmente, o que é um trabalho complexo para quem não possui muita experiência nessa parte de infraesrutura. Nesse post vou mostrar a você como criar hosts virtuais com apenas 1 linha de comando no Linux, de forma rápida e descomplicada.

Instalando o Virtualhost Manage Script

O Virtualhost Manage Script é um bash script que faz o trabalho duro da criação de hosts virtuais no Linux, e funciona tanto com Apache quanto com NGINX.

Para instalá-lo, abra o terminal e digite os comandos a seguir:


cd /usr/local/bin

wget -O virtualhost https://raw.githubusercontent.com/RoverWire/virtualhost/master/virtualhost.sh

chmod +x virtualhost

Se você utiliza o NGINX ao invés do Apache, então execute os comandos a seguir:


cd /usr/local/bin

wget -O virtualhost-nginx https://raw.githubusercontent.com/RoverWire/virtualhost/master/virtualhost-nginx.sh

chmod +x virtualhost-nginx

Pode ser que você precise utilizar o comando sudo junto dos comandos acima, vai depender de como estão as permissões do seu usuário.

Após executar os comandos acima você já pode criar os seus hosts virtuais diretamente pelo terminal. Para testarmos a criação de hosts virtuais, acesse o diretório de documentos do seu usuário em seu computador e execute o comando a seguir para criar um projeto em CodeIgniter usando o Composer.

composer create-project bcit-ci/codeigniter projeto_virtualhost --prefer-dist

Após executar esse comando será criado um diretório chamado projeto_virtualhost com toda a estrutura do CodeIgniter, mas fora do diretório do servidor web local, ou seja, você não conseguirá acessar o projeto através da URL http://localhost/projeto_virtualhost.

Criando os hosts virtuais

Para solucionar esse problema vamos criar o host virtual para que possamos acessar o projeto no browser através da URL http://local.projeto-virtualhost.

Execute o comando a seguir para criar o host virtual:


sudo virtualhost create local.projeto-virtualhost <path-do-diretorio-do-projeto>

Após executar o comando você deverá ver no terminal uma mensagem semelhante à apresentada a seguir:


New Virtual Host Created

Host added to /etc/hosts file 

Enabling site local.projeto-virtualhost.
To activate the new configuration, you need to run:
  service apache2 reload
[ ok ] Reloading apache2 configuration (via systemctl): apache2.service.
Complete! 
You now have a new Virtual Host 
Your new host is: http://local.projeto-virtualhost 
And its located at /home/jlamim/Documents/projeto_virtualhost

Agora basta você acessar no browser a URL do host virtual que acabamos de criar e verá a tela padrão do CodeIgniter.

A partir de agora você pode ter URLs mais fáceis de lembrar para utilizar no desenvolvimento dos projetos em ambiente Linux.

Até a próxima!