Vagrant

Vagrant

Olá galera…

Nos últimos meses eu comecei a trabalhar com o Vagrant.
Pra quem não conhece, o vagrant em resumo é uma máquina virtual para que você possa configurar um servidor local que tenha as mesmas configurações do seu servidor de produção por exemplo, você trabalha em casa no windows, com php 5.2 mas o seu servidor de produção é um ubuntu com php 5.4, então usando o vagrant você cria uma máquina virtual com a exata configuração do seu servidor de produção. Simples assim!

Vagrant é jóia!

Vagrant é jóia!

Depois de algum tempo trabalhando com o vagrant, eu não conseguia enxergar uma forma de trabalhar com múltiplos sites em apenas uma instancia do vagrant. Eu sempre criava novas máquinas virtuais e ficava alternando em cada uma das máquinas para cada projeto que eu estivesse trabalhando. Isso porque o vagrant faz um mapeamento interno e o redirecionamento de portas. Não sei se a galera também trabalha assim, mas eu estava cometendo esse vacilo, e como isso não estava me atendendo eu resolvi partir para essa solução descrita abaixo (se alguém tiver outras formas, compartilhe nos comentários).

Eu havia conversado com o meu amigo Lucas Mezêncio sobre o redirecionamento de portas, pois não dá pra fazer (ou pelo menos eu não sei fazer) isso pelo arquivo hosts, então ele até propôs a usar um programa de redirecionamento de portas chamado POW. Mas mesmo assim eu ainda não havia encontrado uma forma de solucionar o problema.
Então eu fiz o seguinte:

1 – Com o vagrant ja rodando, acesse o mesmo via ssh.

2 – Vá em /etc/apache2/sites-available/ e crie 2 arquivos:
– site1.local

<br />
ServerAdmin webmaster@site1<br />
DocumentRoot &quot;/var/www/site1/&quot;<br />
ServerName site1.local<br />

– site2.local

<br />
ServerAdmin webmaster@site2<br />
DocumentRoot &quot;/var/www/site2/&quot;<br />
ServerName site2.local<br />

3 – Em seguida, faça os comandos:

<br />
a2ensite site1.local<br />
a2ensite site2.local<br />

4 – Vá em /var/www/ e crie:

/var/www/site1/index.php

<br />
&lt;!--?php echo 'site1'; ?--&gt;<br />

e
/var/www/site2/index.php

<br />
&lt;!--?php echo 'site2'; ?--&gt;<br />

5 – No arquivo /etc/hosts adicione

<br />
127.0.0.1 site1.local<br />
127.0.0.1 site2.local<br />

6 – No arquivo /etc/apache2/ports.conf

<br />
NameVirtualHost *:8001<br />
NameVirtualHost *:8002</p>
<p>Listen 8001<br />
Listen 8002<br />

7 – Reinicie o apache

8 – Edite o arquivo Vagrantfile colocando:

<br />
config.vm.forward_port 8001, 8001<br />
config.vm.forward_port 8002, 8002<br />

9 – Reinicie o vagrant

10 – Pronto… acesse localhost:8001 e você verá “site1” e em localhost:8002 “site2”

Bravo, bravíssimo!

Bravo, bravíssimo!

Obrigado pessoal!
Comentários são bem vindos, não sei ainda se essa é a melhor forma,
mas a principio é a forma que eu encontrei e resolvi compartilhar com vocês.

Obs: Pra quem usa mac e quiser usar o POW (citado acima) você ira mapear as portas 8001 e 8002
e poder acessar via site1.dev e site2.dev respectivamente. =)


@emersonbroga

Formado em Desenvolvimento de Sistemas pela Faculdade Pitágoras e pós-graduado em Gestão Estratégica de Marketing pela PUC Minas trabalhei em diversas agências e atualmente trabalho em projetos internacionais como FOX.com, FXNetworks.com, NatGeo.com entre outros.