Ambiente APACHE/PHP/MYSQL com Vagrant
Publicado em: 19/03/2020 00:31 - Atualizado em: 19/03/2020 17:53
É de conhecimento de muitos que a utilização de Containers é uma realidade cada vez mais comum. Independente da plataforma utilizada (Docker, Vagrant), a versatilidade dos containers é ponto comum em todas as ocasiões.
Foi por esse motivo que resolvi falar um pouco sobre o Vagrant e lhes mostrar como criar um ambiente de desenvolvimento WEB utilizando:

- Windows 10
- Virtualbox
- Vagrant
- Apache
- PHP
- mysql


Vamos criar o nosso Vagrant Container seguindo os seguintes passos:

1. INSTALE AS SEGUINTES FERRAMENTAS:


No caso do windows, os downloads são de fácil instalação seguindo o famoso "next next".


2. CRIE UMA PASTA E ACESSE A MESMA PELO TERMINAL


3. AINDA PELO TERMINAL, DENTRO DA PASTA CRIADA:
- Digite "vagrant init hashicorp/bionic64"
- Isso irá criar um um arquivo chamado "Vagrantfile"
- Esse será o arquivo de configuração do nosso container



INFORMAÇÃO: utilizamos hashicorp/bionic64 por já conhecer sua existência nos repositórios do Vagrant,
será a partir dele que iremos customizar o nosso novo container.


4. DOWNLOAD E ACESSO SSH DO CONTAINER
        - Acesse a pasta criada via terminal e digite "vagrant up" para iniciar o download/criação do container "hashicorp/bionic64"
        - Ainda no terminal utilize "vagrant ssh" para acessar o container (senha: vagrant)
        - Com o acesso SSH ativo, vamos atualizar nosso container e instalar o ambiente nele


5. INSTALANDO E CONFIGURANDO O PHP/APACHE
- No ubuntu 18 a versão do PHP vai até a 7.2 (vamos add a versão 7.4.2)
- Para isso vamos adicionar o repositório não nativo do ubuntu, assim:
- sudo apt -y install software-properties-common
- sudo add-apt-repository ppa:ondrej/php
- Vai solicitar um ENTER para confirmar a adição
- sudo apt update -y



- sudo apt upgrade -y (para atualizar o ubuntu)
- Vai solicitar um ok referente a algumas atualizações do grub, nada a configurar aqui, basta "dar ok"



- Para instalar o apache, use o comando: sudo apt install apache2 -y
- Depois ative o modo rewrite usando: sudo a2enmod rewrite
- Reinicie o apache com a linha de comando a seguir: systemctl restart apache2



- POR FIM, VAMOS INSTALAR AS BIBLIOTECAS ESSENCIAIS PARA O PHP
- Agora instalaremos as lib's do PHP, caso necessite de mais alguma adicione a mesma no final da linha:
- sudo apt -y install php7.4 php7.4-curl php7.4-mbstring php7.4-bcmath php7.4-zip php7.4-mysql php7.4-pgsql php7.4-sqlite php7.4-json php7.4-gd

6. INSTALANDO MYSQL
- Permaneça logado no SSH do Vagrant e siga os passos abaixo:
- sudo apt install mysql-server -y
- No mysql precisamos definir a senha para podermos acessar o banco:
- sudo cat /etc/mysql/debian.cnf
- Nesse arquivo vamos ter o user: debian-sys-maint e password: xxxxxxxx



- Caso queira criar outro usuário ou trocar a senha do usuário root utilize:
- mysql -u debian-sys-maint -p (tecle enter e digite a senha)
- agora estaremos no terminal do mysql
mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
mysql> commit;
mysql> FLUSH PRIVILEGES;
mysql> COMMIT;
mysql> EXIT;
- E assim voltamos ao terminal ssh do nosso container



- sudo service mysql restart (para reiniciar o serviço do mysql)
- Agora podemos acessar o mysql com:
- mysql -u root -p (ENTER)
- digite a senha que você escolheu no update para testar a conexao com o usuário
- exit; (para sair novamente do mysql)
- exit (para sair do acesso ssh)



7. EXPORTANDO E RENOMEANDO UM BOX (box = container exportado para arquivo .box):
- Para fins visuais, achei melhor renomear o container para deixar meu ambiente mais organizado
- vagrant halt (para encerrar o container)
- vagrant package --output meu_box_vagrant_customizado.box (vai exportar para arquivo, Aguarde o terminar...)
- vagrant destroy (elimina o atual, pois vamos renomeá-lo para melhor visualização. Vai pedir confirmação para excluir. Digite "y" e pressione ENTER)
- vagrant box remove hashicorp/bionic64 (vamos remover a entrada do virtualbox)





8. CONFIGURANDO O VagrantFile
- Abra o VagrantFile com um editor de texto
- Altere as linhas a seguir ou crie-as caso não existam:

- Trecho do vagrantFile que nos interessa

            config.vm.box = "meu_box_vagrant_customizado.box"
            config.vm.provider :virtualbox do |vb|
                vb.name = "meu_box_vagrant_customizado"
            end

- "config.vm.box" é o nome do arquivo.box criado anteriormente
- A linha que diz "vb.name" é o nome que irá ser exibido na lista de VMs do Virtualbox
- config.vm.network "forwarded_port", guest: 80, host: 8000 (80 é a porta no container e 8080 será a porta que vamos utilizar para acessar nossa aplicação)
- config.vm.synced_folder "./", "/var/www/html", mount_options: ["dmode=777,fmode=777"] (Aqui está o mapeamento com a pasta do apache e permissões de acesso)
- config.vm.provider "virtualbox" (valor default "virtualbox")
- Feito isso podemos visualizar nosso container carregado na lista de VMs do virtual box




9. SUGESTÃO: TRANSPORTANDO MEU AMBIENTE
- Os arquivos .box e o vagrantfile estão prontos. Sugiro copiar os arquivos em um pen-drive, assim você sempre terá um ambiente php disponível para instalação rápida
- Supondo que você deseja instalar esse ambiente em outro computador:
- copie esses arquivos para um local de sua preferência
- Acesse esse local via terminal e digite:
- vagrant box add --name meu_box_vagrant_customizado .\meu_box_vagrant_customizado.box

10. CONSIDERAÇÕES FINAIS
- Se tudo correu bem, devemos ter um ambiente php com apache e mysql pronto para utilizarmos.
- Pelo terminal, vamos até nossa pasta e digite "vagrant up" dê um ENTER
- Depois de carregado, acesse no navegador http://127.0.0.1:8000/
- Para fins de teste do ambiente, coloque um arquivo.php com a função phpinfo(); dentro do diretório
- Acesse 127.0.0.1:8000



- Isso irá mostrar todas as configurações e libs carregadas em nosso container.
- Para parar o serviço, basta acessar nossa pasta pelo terminal e digitar: "vagrant suspend"

PRONTO! TEMOS UM AMBIENTE DE DESENVOLVIMENTO MONTADO EM POUCOS MINUTOS

11. CONTAINER DISPONÍVEL ONLINE
- O container montado aqui nessa publicação foi disponibilizado em: tiagofick/tiagofickPHP74
- Você pode utilizá-lo instalando o Virtualbox, o vagrant, como indicado nos primeiros passos e via terminal
utilizar os comandos:

            - vagrant init tiagofick/tiagofickPHP74 (ENTER)
            - vagrant up (ENTER)

REFERÊNCIAS:

Vagrant

VirtualBox

Download e Instalação do Vagrant

Reset Senha do MySQL

Container já disponível na WEB

arrow_back