Máquina virtual para desenvolvimento web

Antes de começar a desenvolver em linguagens como ASP, Python, Perl, PHP, Java entre outras. Devemos pensar onde iremos executar este código, ou seja, nossa aplicação irá rodar onde na fase de desenvolvimento? Logo de inicio temos várias opções, container docker, utilizar o vagrant para subir um ambiente virtual ou então criar uma máquina virtual.Docker é uma ótima opção, muito leve, simples e cheio de possibilidades. Vagrant é basicamente um “script” que inicia uma máquina virtual e monta uma interface de compartilhamento entre sua máquina hospedeira com a máquina hospede, permitindo que os arquivos fiquem na sua máquina, mas que os recursos como banco de dados, servidor web e outros fiquem no ambiente virtual que ele iniciou.

Pessoalmente gosto de instalar manualmente uma máquina virtual e configurar ao meu gosto. Sendo assim, siga os passos que serão apresentados mais adiante para ter um ambiente de desenvolvimento favorável.

Cenário (artefatos)

O Debian será nosso sistema GNU/Linux virtualizado, para está tarefa de virtualização estou utilizando o VirtualBox. Porém, este procedimento pode ser facilmente adequado a outros sistemas GNU/Linux.

Para instalação dos pacotes será utilizado o programa aptitude, porém, fique a vontade para instalar via apt-get.

Preparando o ambiente

Antes de instalar qualquer software rode o comando para atualizar a lista de pacotes disponíveis:

aptitude update

Instalando o Apache e o interpretador PHP

O comando abaixo irá efetuar a instalação do apache:

aptitude install apache2

Uma boa parcela das aplicações web utilizam um módulo de reescrita de URL’s amigáveis, para isso é necessário ativar o módulo rewrite do apache e logo na sequência aplicar um reload para que está configuração seja carregada. Utilize o comando:

a2enmod rewrite
service apache2 restart

Agora vamos instalar o PHP, módulo de compatibilidade com apache e mais alguns módulos básicos e recomendados:

aptitude install php5 libapache2-mod-php5 php5-gd php5-mcrypt php5-mysql php5-curl php5-imagick php5-memcache php5-json php5-mhash

Instalando o SGBD MySQL e liberando acesso remoto

O comando abaixo irá efetuar a instalação do servidor de banco de dados MySQL:

aptitude install mysql-server

Após a instalação, utilize o comando abaixo para que sejam aplicadas algumas configurações recomendadas:

/usr/bin/mysql_secure_installation

Para liberar acesso remoto ao banco, efetue login no mesmo e execute o comando:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY "your_password";

E no arquivo /etc/mysql/my.cnf comente a linha “bind-address = 127.0.0.1“.

Compartilhando arquivo entre máquina hospedeira e convidada

Abra o VirtualBox e inicie sua VM. Assim que a VM estiver pronta para uso percorra este caminho na barra de menus da VM:

Dispositivos > Inserir Imagem de CD dos adicionais para convidados...

No terminal execute com privilégios de root os comandos abaixo:

mount /dev/cdrom /media/cdrom
aptitude install make gcc linux-headers-$(uname -r)

Efetue o restart da sua VM. Após a mesma está novamente disponível execute o comando abaixo (obs: para o comando abaixo provavelmente será necessário ter o bzip2 instalado):

/media/cdrom/VBoxLinuxAdditions.run

Agora vá na barra de menu do virtual box e crie um compartilhamento de pastas, no momento de nomear este compartilhamento de por exemplo o nome var_www.

Para montar o compartilhamento na inicialização do línux será necessário editar o arquivo /etc/fstab e adicionar o seguinte comando ao final do mesmo:

var_www /var/www vboxsf rw,uid=www-data,gid=www-data,noauto,comment=systemd.automount   0       0

Lembrando que var_www e /var/www são exemplos, ou seja, coloque respectivamente o nome do compartilhamento e o local onde ele será montado no servidor Linux.

O ambiente já está instalado, agora basta liberar mais uma interface de rede estática no VirtualBox para que possamos chamar o servidor via IP a partir de nossa máquina hospedeira. Para executar os passos abaixo você deve está com sua VM desligada.

No VirtualBox vá em Preferências > Rede > Rede Exclusiva de Hospedeiro e clique em adicionar. Uma rede com ip já definido será atribuída (guarde este ip),  como iremos utilizar ip estático vá em servidor dhclp e desmarque a opção Habilitar servidor.

Agora volte a tela inicial, clique com o botão direito sobre sua VM e vá em Configurações > Rede, o adaptador 1 já estará devidamente configurado, clique no adaptador 2 e escolha “Placa de rede exclusiva de hospedeiro” e no campo nome selecione a configuração que criamos nas preferências de rede do VirtualBox.

Para concluir vamos iniciar o VirtualBox e configurar o endereço IP estático no arquivo /etc/network/interfaces, para isso utilize o editor de texto de sua preferência:

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug eth1
iface eth1 inet static
        address 192.168.56.100
        network 192.168.56.0
        netmask 255.255.255.0
        broadcast 192.168.56.255
        gateway 0.0.0.0

A configuração acima representa o IP da minha interface de rede eth1 (rede exclusiva de hospedeiro).