Table of Contents
Ele representa mais da metade de todos os websites ativos na Internet e é extremamente poderoso e flexível.
O Apache divide suas funcionalidades e componentes em unidades individuais que podem ser personalizadas e configuradas independentemente. A unidade básica que descreve um determinado site ou um domínio é chamada virtual host.
###Introdução
O servidor web Apache é a forma mais popular de servir conteúdo web na Internet.
Ele representa mais da metade de todos os websites ativos na Internet e é extremamente poderoso e flexível.
O Apache divide suas funcionalidades e componentes em unidades individuais que podem ser personalizadas e configuradas independentemente. A unidade básica que descreve um determinado site ou um domínio é chamada virtual host.
Essas denominações permitem ao administrador utilizar um servidor para hospedar múltiplos sites e domínios a partir de uma simples interface ou IP através da utilização do mecanismo de correspondência . Isto é relevante para quem quer hospedar mais de um site em um único VPS (Virtual Private Server).
Cada domínio que esteja configurado irá direcionar o visitante para um diretório específico que mantém as informações daquele site, nunca indicando que o mesmo servidor também é responsável por outros sites. Este esquema é expansível sem qualquer limite de software desde que seu servidor possa suportar a carga.
Neste guia, vamos orientá-lo sobre como configurar Apache virtual hosts em um VPS Ubuntu 14.04. Durante este processo, você aprenderá como servir diferentes conteúdos para diferentes visitantes dependendo de qual domínio eles estão requisitando.
##Pre-requisitos
Antes de você começar este tutorial, você deve criar um usuário non-root conforme descrito nos passos 1-4 aqui.
Você também precisará ter o Apache instalado a fim de trabalhar com estes passos. Se você não tiver feito isto, você poderá ter o Apache instalado em seu servidor através do apt-get:
sudo apt-get update
sudo apt-get install apache2
Após a conclusão dessas etapas, podemos começar.
Para os objetivos deste guia, minha configuração fará um virtual host para example.com e outro para teste.com. Estes serão referenciados ao longo do guia, mas você deve substituir seus próprios domínios ou valores enquanto acompanha.
Para aprender como configurar seus nomes de domínio com the cloud provider, siga este link. Se você não tiver domínios disponíveis para utilizar, você poderá utilizar valores fictícios.
Iremos mostrar como editar seu arquivo hosts local posteriormente, para testar a configuração, se você estiver usando valores fictícios. Isto o permitirá testar sua configuração pelo seu computador doméstico, mesmo que seu conteúdo não esteja disponível através do nome de domínio para outros visitantes.
#Passo um – Crie a estrutura de diretórios
O primeiro passo que vamos tomar é criar uma estrutura de diretório que irá armazenar os dados do site que estará servindo aos visitantes.
Nosso document root (o diretório de nível superior que o Apache olha para encontrar o conteúdo para servir) será definido para diretórios individuais sob o diretório /var/www. Vamos criar um diretório aqui para ambos os virtual hosts que estamos planejando fazer.
Dentro de cada um desses diretórios, vamos criar o diretório public_html que irá manter nossos arquivos reais. Isto nos dá certa flexibilidade em nossa hospedagem.
Por exemplo, para nossos sites, nós vamos criar nossos diretórios assim:
sudo mkdir -p /var/www/<^>example.com<^>/public_html
sudo mkdir -p /var/www/<^>test.com<^>/public_html
As partes em vermelho representam os nomes de domínio que estamos querendo servir através de nossos VPS.
#Passo Dois – Conceda Permissões
Agora temos a estrutura de diretórios para nossos arquivos, mas eles são de propriedade de nosso usuário root. Se quisermos que nosso usuário regular esteja apto a modificar arquivos em nossos diretórios web, podemos alterar o proprietário fazendo isto:
sudo chown -R $USER:$USER /var/www/<^>example.com<^>/public_html
sudo chown -R $USER:$USER /var/www/<^>test.com<^>/public_html
A variável $USER terá o valor do usuário com o qual você está logado atualmente quando você pressionou "ENTER". Fazendo isto, nosso usuário regular agora detém os sub-diretórios public_html onde estaremos armazenando nosso conteúdo.
Devemos também modificar um pouco nossas permissões para garantir que o acesso de leitura é permitido para o diretório web em geral e todos os arquivos e pastas que ele contém de modo que a páginas possam ser servidas corretamente:
sudo chmod -R 755 /var/www
Seu servidor web agora deve ter as permissões que ele precisa para servir o conteúdo, e seu usuário deve ser capaz de criar conteúdo dentro das pastas necessárias.
#Passo Três – Crie as Páginas Demo para cada Virtual Host
Temos nossa estrutura de diretório no lugar. Vamos criar algum conteúdo para servir.
Vamos fazer apenas uma demonstração, assim nossas páginas serão bastante simples. Vamos apenas fazer uma página index.html para cada site.
Vamos começar com example.com. Podemos abrir um arquivo index.html em nosso editor digitando:
nano /var/www/<^>example.com<^>/public_html/index.html
Neste arquivo, crie um documento HTML simples que indica o site que está conectado. Meu arquivo se parece com isso:
<html>
<head>
<title>Welcome to <^>Example.com<^>!</title>
</head>
<body>
<h1>Success! The <^>example.com<^> virtual host is working!</h1>
</body>
</html>
Salve e feche o arquivo quando terminar.
Podemos copiar este arquivo para usá-lo como base para nosso segundo site digitando:
cp /var/www/<^>example.com<^>/public_html/index.html /var/www/<^>test.com<^>/public_html/index.html
Podemos, então, abrir o arquivo e modificar as informações pertinentes:
nano /var/www/<^>test.com<^>/public_html/index.html