Criando uma maquina virtual com linux (Debian) para Desenvolvedores Web (LDAMPS)

LDAMPS (Linux / DNS / Apache / MySQL / PHP / SFTP)

A ideia deste tutorial é criar um cenário mais legal que um simples “xampp/easyphp”, e sim criar nosso próprio “servidor de hospedagem” onde vamos criar domínios virtuais quais poderemos acessá-los para fazer simulações em cima de ambientes mais reais.

Para crianção da maquina virtual no VirtualBox e a Instalação do Debian siga os tutoriais abaixo.

Criando uma máquina virtual no Virtual Box

Na instalação, na parte da configuração não é necessário fixar um IP, pode recebe-lo automaticamente via DHCP, assim se você sair da sua rede pode levar a experiência para outras redes, porém será necessário alterar o endereço IP nas configurações do bind cada vez que seu servidor receber um novo IP, falarei disso nas configurações do BIND (é apenas um arquivo nada d+).

Instalação do Debian 8 Jessie Limpa passo-a-passo

Após instalação do Debina, instalaremos o SSH para acessamos remotamente via Terminal ou com Putty (Windows). Vou ainda instalar o editor vim, que é meu preferido, mas você pode usar nano, pico entre outros.


Lembre-se que no processo da criação da maquina virtual nossa placa de rede ficou em modo bridge, ou seja isso faz com que a comunicação existente em sua rede seja de ponto-a-ponto entre todos que nela estão conectados.

Sempre que iniciar sua máquina virtual será necessário verificar qual IP recebeu.


No meu caso minha maquina está com o IP 10.0.0.109. Agora vamos acessar nosso servidor por SSH, se você já utiliza linux abra em seu terminal e digite $ ssh seuusuario@ip-do-seu-servidor ou abra o Putty e informe o IP do seu servidor.
Entre com sua senha, e após vire administrador (root) com o comando #su

Tem duas coisar que sempre faço após instalar um debian, faça se desejar.
A primeira é colorir o bash.

Descomente

Insira ao final:

Deslogue do root (# exit), e logue novamente (# su)
Pronto nosso bash está com “mais vida” 🙂

Você encontra mais detalhes em: Colorindo seu Bash

A segunda é melhorar o autocomplete:
Bash com autocomplete “turbinado” no Debian

Precisamos instalar nosso servidor web, para isso siga o tutorial abaixo.

Passo-a-passo como criar um servidor web Apache2, PHP5, MySQL, PHPMyAdmin “LAMP” no Debian 8

Agora vem a parte legal!! Configurar nosso servidor para resolver nomes (Sevidor DNS) e nele configurar alguns domínios “fake” quais poderemos acessar.

Vale lembrar que você não deve fazer isso em uma máquina com IP válido, caso fizer isso vai estar deixando consultas recursivas aberta para o mundo “escravizar-lo”, não vou entrar em detalhes das configurações avançadas do bind, o intuito aqui é ensinar pessoas a ter um cenário para programação web, em um ambiente local. Se deseja saber como configurar um servidor DNS acesse:
Servidor DNS Recursivo, Autoritativo e Reverso com Bind9 (IPv4+IPv6).

No exemplo vou inventar dois domínios fake:
dominio1.com.br
dominio2.com.br

Instalaremos o BIND

Altere o DNS do seus servidor para ele mesmo

Para prevenir que o DHCP não mude novamente seu DNS vamos alterar um configuração no arquivo de configuração do DHCP Cliente. Assim sempre vamos receber o 127.0.0.1

Se quiser garantia que irá receber o 127.0.0.1 de um reboot em sua VM, e após reiniciar de um cat /etc/resolv.conf e veja se nameserver 127.0.0.1 se encontra no arquivo.

Vamos criar nossa zona fake, que fará com que todos os domínios que adicionaremos nela o servidor faça responder que o domínios é o seu próprio servidor.

Lembrando que 10.0.0.109 é o IP que estou recebendo via DHCP, SEMPRE que sua interface receber um novo IP será necessário altera-lo, e restartar o serviço bind9.

Vou ensinar como fazer script (shell script) que fará com que sempre fique o IP recebido via DHCP.
Insira no final do arquivo /etc/rc.local as linhas abaixo, o rc.local é carregado na inicialização.

Insira antes de exit 0

Criaremos nosso arquivo fakes.zone quais adicionaremos os domínios fake.

# vim /etc/bind/fakes.zone

Insira no arquivo antes de fechar a chave options.

Ficando assim:

Restarte o bind toda vez que fizer alguma alteração (ex adicionar um novo domínio)

Ping para seus domínios e veja se responde o IP do seu servidor.

Altere os DNS de seu computador para o IP do seu servidor “no meu caso 10.0.0.109”. Seu computador vai fazer as consultas DNS em seu servidor, qual responde como autoritativo pelos domínios fakes. Agora Acesse seus domínios em seu navegador.

Recebemos a tela padrão, que esta é o arquivo que está em /var/www/html/index.html
Como padrão então já sabemos que o diretório padrão do apaches (www-data) é /var/www/html/. Bom precisamos fazer nosso apache interpretar que cada site fique em um diretório diferente. Então vamos criar esses diretórios.

Agora criamos nossos 2 arquivos de configurações em /etc/apache2/sites-enabled/ para cada domínio.

dominio1.com.br

dominio2.com.br

Criamos um arquivo em cada diretório para que possamos visualizar que estamos acessando o domínio corretamente.

Agora restart o apache.

Bingo!

Vamos remover o /var/www/html/index.html e criar um link dos domínios fakes em /var/www/html/ assim quando você não quiser trocar o IP para resolver nomes, você pode acessar o http://IP/dominiofake….

Para enviarmos os arquivos podemos usar um cliente SFTP como o FileZilla, Winscp entre outros. Mas para logar no nosso cliente SFTP vamos ter que fazer alguns ajustes no usuário www-data (usuário do apache), primeiramente ele não vem com permissão para logar, vale lembrar que eu não recomendo faze isso em servidores convencionais, este é um ambiente de “local” para estudos…

Sete uma senha para o usuário www-data com o comando. (Vamos usar ela para logar posteriormente no FileZilla)

Altere as permissões do diretório/subdir em /var/www para seu usuário www-data

Agora basta você conectar-se para enviar os arquivos: (ex. FileZilla)

Se você deseja arriscar e elevar o nível e criar um servidor FTP você pode seguir o tutorial: Servidor FTP com usuários no banco de dados MySQL

Como está criando um ambiente para programar é interessante receber os erros do PHP, então edite as configurações do php.ini ele fica em /etc/php5/apache2/php.ini
Procure por display_errors e altere para On

O padrão para upload de arquivos no PHP é de 2M. Você este valor procurando por upload_max_filesize e colocando o valor que achar melhor.

A cada alteração feita no php.ini deve ser restartado o apache.

Se precisar ver os logs você encontra em /var/log/apache2/. Se você reparar vai ver que la na configuração do domínio no apache temos o valor [ErrorLog ${APACHE_LOG_DIR}/dominio2.com.br_error.log].
Ex de comando para visualizar:

Agora cada vez que deseja criar um domínio fake:
1 – Crie um arquivo/etc/apache2/sites-enabled/dominiofake.com.conf (sempre terminando em .conf)

2 – Insira no /etc/bind/db.fakes.zone seu dominofake.com

3 – Restart o apcache e o Bind

Você pode criar também um usuário MySQL para cada aplicação sua, para separar as bases de dados, segue um ex. onde criamos a base de dados dominio1 com o usuario dominio1 e SENHA:

Você pode usar o phpmyadmin também.

Pensando em facilitar sua vida, vou criar dois shell script. Uma para adicionar um domínio com apenas um comando, e outro para remover.

Altere as permissões.

Pronto agora bastar você usar o comando adddominio para adicionar todas as configurações automaticamente e deldominio para remove-las.
Adicionando:

Removendo:

Parabéns! Você montou um servidor próprio!

Agora se você quer dar uma de preguiçoso vou deixar aqui o link para você importar a VM em seu virtual box.
Dev Web Server.ova 765MB (64bits)
Abra seu Virtual Box vá em: Arquivo –> Importar Amppliance e selecione o arquivo.

Se gostou, ficou com dúvida deixe seu comentário.

Abraço!

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

8 Resultados

  1. Tony de Maceió disse:

    Não foi possível iniciar a máquina Dev Web Server pois as seguintes interfaces físicas de rede não foram encontradas:

    enp0s25 (adapter 1)

    Altere as configurações de rede desta máquina, ou desligue-a.

  2. Tony de Maceió disse:

    Remontti, está ocorrendo esse erro quando tentamos executar a máquina pelo Virtualbox:

    “Não foi possível iniciar a máquina Dev Web Server pois as seguintes interfaces físicas de rede não foram encontradas:

    enp0s25 (adapter 1)

    Altere as configurações de rede desta máquina, ou desligue-a.”

  3. Boa Tarde! Neste caso pra mim publicar este servidor web junto com meu proprio dns para resolver meus próprios dominios basta ter um ip publico para configurar no server ?

  4. WDS disse:

    Ola Remontti, esotu com o seguinte erro ao tentar acessar o servidor via ssh aparece a seguinte mensagem ‘PERMISSON DENIED, PLEASE TRY AGAIN”. ajuda-me. por favor.

  5. Alexandre disse:

    Sempre compartilhando conhecimento. Excelente artigo. Parabéns!

Deixe um comentário

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