Ambiente de Desenvolvimento LAMP com Vagrant

Neste tutorial irei ensinar como você poderá mudar sua forma de desenvolver e ter um ambiente rodando o Linux, Apache, MySQL e PHP sempre atualizados sem muito esforços e configurações utilizando o Vagrant e o PHPAnsible. Este não é um tutorial completo de Vagrant, mas uma porta para você conhecê-lo e quem sabe amá-lo.

Introdução

Ao final deste tutorial você terá disponível um ambiente com:

  • Ubuntu Trusty Tarhr (14.04)
  • Apache 2.4.12
  • MySQL 5.5.41
  • PHP 5.6.5
  • phpMyAdmin 4.0.10
  • Composer
  • Git
  • vim

Porque Usar o Vagrant?

O Vagrant oferece ambientes de desenvolvimento fáceis de configurar, reproduzíveis e portáveis, construídos a partir de tecnologias padrão de mercado e que podem ser controladas por um único fluxo de trabalho consistente que ajuda a maximizar a produtividade e flexibilidade sua e de sua equipe.

Para que isso aconteça, o Vagrant conta com a ajuda de gigantes. Máquinas são provisionadas em cima do VirtualBox, VMWare, AWS ou qualquer outro provedor disponível. Então, ferramentas de provisão padrão de mercado tais como shell scripts, Chef, Puppet, PuPHPet ou PHAnsible, podem ser utilizadas para automatizar a instalação e configuração de software na máquina virtual.

Foi por isso que, depois de obter excelentes resultados com o Vagrant, decidi utilizá-lo em meus tutoriais, para que você trabalhe exatamente no mesmo ambiente de desenvolvimento que eu utilizei e perca tempo somente aprendendo e não se estressando com erros relacionados ao ambiente.

Como o Vagrant Beneficia Você?

Se você é um desenvolvedor, o Vagrant irá isolar as dependências e suas configurações dentro de um único e consistente ambiente disponível sem sacrificar quaisquer ferramentas que você já trabalhe (editores, navegadores, debuggers, etc.). Uma vez que você ou alguém cria um arquivo Vagrantfile, você somente precisará executar o comando “vagrant up” e tudo estará instalado e configurado para você trabalhar. Outros membros de sua equipe poderão trabalhar em ambientes de desenvolvimento com as mesmas configurações.

Independentemente se você está trabalhando com Linux, Mac OS X ou Windows, todos os membros de sua equipe executarão os códigos exatamente no mesmo ambiente. Diga adeus para “na minha máquina dá esse erro“.

Por isso, além de  utilizar o Vagrant para meus tutoriais, você é convidado a utilizá-lo no seu dia-a-dia ou com sua sua equipe a fim de aumentar a produtividade.

O que é o PHAnsible?

O PHAnsible oferece uma ferramenta fácil de utilizar e altamente personalizável que permite criar um provedor Vagrant utilizando Ansible, que é uma ferramenta de automação. Ele foi baseado no PuPHPet.

Eu já utilizei o PuPHPet e não gostei, pois gerou muitos erros e incompatibilidades, e, na revolta, acabei encontrando o PHAnsible e confesso que foi amor à primeira vista.

O que o PHAnsible faz é oferecer uma interface web para você definir o que deseja utilizar no seu ambiente de desenvolvimento. Você seleciona o que quer e clica em “Generate“, baixa, extrai, e roda “vagrant up“. No final você tem tudo configurado e instalado para você.

Acesse a página do projeto disponível em http://phansible.com para conhecê-lo e entender o que estou falando.

Diferente do PuPHPet, o PHAnsible, no momento em que escrevo este tutorial, somente disponibiliza distribuições do Ubuntu, o que para mim não é um problema, pois é a distribuição que gosto de utilizar.

Posso antecipar aqui que esta é uma forma de se obter um ambiente LAMP com o Vagrant, outra forma é baixar um Box, que é a máquina virtual em si utilizada pelo Vagrant, e que é baixada quando você utiliza o PHAnsible. Existem sites dedicados para isso. A fim de curiosidade, acesse http://www.vagrantbox.es. Role a página até o final e veja que existem diversas opções de Sistemas Operacionais disponíveis.

O SandBox

O SandBox, que não possui tradução para o mundo dos desenvolvedores, é a “caixa-de-areia” de todo desenvolvedor onde ele brinca com seus códigos, e todo desenvolvedor deve ter um!

No meu caso, eu criei uma pasta chamada “sandbox” na pasta do meu usuário e tudo o que desenvolvo eu coloco dentro dela. Fica mais fácil de se organizar.

O legal de você ter um SandBox é que você abstrai e mantém íntegro o caminho destino para tudo o que é solicitado ser realizado. Por exemplo: crie uma pasta “phpdev” dentro do SandBox. Não me interessa se você criou o seu em “/meu/caminho/ridiculamente/longo/para/o/meu/sandbox/”, você saberá acessá-lo, talvez tenha criado um atalho para ele. Eu criei uma biblioteca do Windows e define o caminho e utilizei um ícone de um console para identificá-lo.

Listagens Bibliotecas Windows

Se você não tem um, não perca tempo! Crie uma pasta em qualquer lugar em seu disco e a nomeie como “sandbox“.

Instalando os Softwares

Você irá precisar dos três softwares abaixo. A instação não exige nenhuma configuração especial, apenas siga os procedimentos.

O GitBash será necessário somente para os leitores que utilizam Windows, pois ele oferece uma interface com comandos Unix, sendo o mais importante o ssh.

Os links são:

Uma vez instalados os itens acima, você não precisará fazer mais nada além de seguir os procedimentos que vou lhe mostrar a seguir.

Baixando o PHAnsible e Instalando Tudo

Você poderia simplesmente ir lá no site do PHAnsible e criar seu ambiente, todavia, perderia tempo e o benefício do reaproveitamento de trabalho.

Por isso, eu já criei. Sinta-se a vontade para criar outras configurações. Visite também o PuPHPet. Faça testes! Experimente! Viva!

O link é:

Crie uma pasta “phpdev” dentro de seu SandBox e extrai os arquivo para dentro dela.

Eu distribuo meu Sandbox desta forma:

Listagem Sandbox

Dentro de “phpdev” você terá uma pasta “ansible” e um arquivo “Vagrantfile“.

Esta pasta “ansible” contém as configurações utilizadas pelo PHAnsible que serão chamadas pelo Vagrantfile no momento que você executar o comando “vagrant up“.

Você deve abrir o Vagrantfile a fim de conhecê-lo. Ele é um arquivo Ruby que utilizadores mais avançados podem fazer configurações diretamente nele.

A princípio, aqui vão algumas informações importantes para você:

  • phpdev  é o nome do servidor
  • phpdev é o nome da pasta no Linux onde ficarão os arquivos “sincronizados” com seu sistema hospedeiro
  • 9.9.9.9 é o IP do servidor
  • www.php.dev é o domínio primário do servidor
  • php.dev é o alias para o domínio
  • phpdev é a senha do MySQL
  • vagrant é o usuário padrão do Linux

Agora abra o Terminal/Console/GitBash (Mac, Linux, Windows) e acesse via linha de comando o caminho para a pasta onde se encontra o arquivo Vagrantfile e execute o comando:

vagrant up

O processo irá trazer o provedor para o VirtualBox importando via download o Box do Vagrantubuntu/trusy64“. Serão feitas algumas verificações e a máquina virtual será levantada.

Após tudo montado o PHAnsible irá instalar os pacotes informados na hora da configuração através da ferramenta online.

O processo demorará mais ou menos tempo dependendo de sua conexão com a internet e hardware. No meu caso com 35MB de download o processo todo não levou 5 minutos.

Aparecerão algumas mensagens de erro além do progresso da instalação, não se preocupe.

Uma vez concluído, a partir de agora tudo o que você criar dentro da pasta “phpdev” dentro de seu Sandbox através de seu Sistema Operacional estará sendo sincronizado para “/phpdev” do Linux, e tudo o que você executar nesta pasta e arquivos através do Linux se comportará como se fossem arquivos dentro dele, mas refletirão no seu Sistema Operacional.

O acesso ao linux é feito da forma mais clássica, via SSH, e para tal, apenas digite:

vagrant ssh

O utilitário executará a conexão SSH e conectará no Linux com o usuário “vagrant“, você deverá ver isso:

Vagrant SSH

 

Acesse o diretório “/phpdev” através do linux no SSH do vagrant e veja que os arquivos listados são exatamente os mesmos que estão na pasta “phpdev” de seu Sandbox.

A partir do seu Sandbox/phpdev, crie um arquivo index.php para testarmos o sucesso da instalação:

<?php
phpinfo();

Para acessar este arquivo você tem 3 opções:

  1. http://9.9.9.9
  2. http://www.php.dev
  3. http://php.dev

Para que as duas últimas funcionem, será preciso informar no arquivo hosts de seu sistema e apontar o ip 9.9.9.9 para php.dev. Se você não sabe como fazer isso, abra como administrador ou sudo o seu arquivo C:\Windows\System32\Drivers\etc\hosts  ou /etc/hosts (Linux, Mac) e adicione uma linha contendo as instruções:

9.9.9.9    php.dev

Tendo acessado o servidor por uma das 3 opções acima, você deverá ver a nova tela de informações do PHP 5.6.

Agora você poderá utilizar o Linux 100% funcional e para concluir, a instalação vamos instalar o PhpMyAdmin.

Digite a linha de comando:

sudo apt-get install phpmyadmin

Você será solicitado que confirme a instalação (só pra fazer drama, poderia usar -y).

Após tudo baixado a instalação começará e será solicitado escolher em qual servidor o phpMyAdmin rodará, é preciso “TECLAR ESPAÇO” e “ENTER” na opção “apache2“, pois do contrário ele instalará, mas não criará os hosts virtuais e você não conseguirá acessá-lo sem complicações.

Opção de Servidor phpMyAdmin

Depois aceite “YES” com ENTER.

Digite a senha “phpdev” as 3 vezes que serão solicitadas, e pronto!

Acesse http://9.9.9.9/phpmyadmin e confira se acessou corretamente.

Acesse com usuário root e  senha phpdev.

Comandos Vagrant Necessários Saber

Este tutorial não tem o intuito de ensinar a utilizar o Vagrant na sua totalidade, mas existem outros 2 comandos básicos que você precisa saber.

Você já conhece:

  • vagrant up
    que permite iniciar a máquina virtual
  • vagrant ssh
    que permite acessar a máquina via SSH

E precisa conhecer:

  • vagrant halt
    que permite suspendar a máquina virtual, caso você precisa reiniciar ou desligar o computador
  • vagrant destroy
    que permite remover uma máquina virtual criada por um Box

Caso queira se aprofundar existem alguns tutoriais legais na internet e alguns livros disponíveis também.

Conclusão

Com isso, concluímos nosso tutorial e agora você possui um ambiente LAMP para desenvolvimento a partir de seu Sistema Operacional, e poderá utilizar todas as ferramentas que sempre utilizou para trabalhar.

É isso ai! Espero que tenha gostado!

Abraço do Giba!

 

 

 

3 comentários sobre “Ambiente de Desenvolvimento LAMP com Vagrant”

  1. Qual a senha do servidor ubuntu?
    Deu erro no windows 10, entretanto quando vou no virtual box a maquina sobe e pede senha.
    Creio que não funciona ainda no windows 10

    1. Olá, Francisco. O Windows 10 vai ser liberado dia 29/07/2015, certamente o suporte aos softwares atuais é parcial ou nem exista, e é provável que algo ou nada funcione mesmo… Mas para todos os fins, não use o Virtual Box 5 ainda, eu instalei ele no Windows 8.1 e não consegui rodar os Boxes do Vagrant.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *