como configurar apache virtual hosts no ubuntu 14

10
Introdução Como configurar Apache Virtual Hosts no Ubuntu 14.04 LTS 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. Prerequisitos Antes de você começar este tutorial, você deve criar um usuário nonroot conforme descrito nos passos 14 aqui. SUBSCRIBE TAGGED IN: GETTING STARTED, LINUX BASICS, FAQ, APACHE, UBUNTU • DIFFICULTY: BEGINNER

Upload: mario-vieira

Post on 25-Dec-2015

6 views

Category:

Documents


1 download

DESCRIPTION

Fonte: https://www.digitalocean.com/community/tutorials/como-configurar-apache-virtual-hosts-no-ubuntu-14-04-lts-pt

TRANSCRIPT

Page 1: Como Configurar Apache Virtual Hosts No Ubuntu 14

Introdução

Como configurar Apache Virtual Hosts noUbuntu 14.04 LTS

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.

PrerequisitosAntes de você começar este tutorial, você deve criar um usuário nonroot conforme descrito

nos passos 14 aqui.

SUBSCRIBE   TAGGED IN: GETTING STARTED, LINUX

BASICS, FAQ, APACHE, UBUNTU • DIFFICULTY: BEGINNER

Page 2: Como Configurar Apache Virtual Hosts No Ubuntu 14

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 updatesudo 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 DigitalOcean, 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óriosO 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_htmlsudo mkdir ‐p /var/www/test.com/public_html

Page 3: Como Configurar Apache Virtual Hosts No Ubuntu 14

As partes em vermelho representam os nomes de domínio que estamos querendo servir

através de nossos VPS.

Passo Dois  Conceda PermissõesAgora 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_htmlsudo 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 paracada Virtual HostTemos 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:

Page 4: Como Configurar Apache Virtual Hosts No Ubuntu 14

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

<p>

<html>  <head>    <title>Welcome to Test.com!</title>  </head>  <body>    <h1>Success!  The test.com virtual host is working!</h1>  </body></html>

Salve e feche o arquivo também. Agora você tem as páginas necessárias para testar a

configuração de virtual host.

Passo Quatro  Crie novos arquivos de

Page 5: Como Configurar Apache Virtual Hosts No Ubuntu 14

Crie o primeiro arquivo de Virtual Host

Virtual HostsArquivos de virtual host são arquivos que especificam a configuração real do nosso virtual host

e determina como o servidor web Apache irá responder às várias requisições de domínio.

O Apache vem com um arquivo padrão de virtual host chamado  000‐default.conf  que

podemos usar como ponto de partida. Vamos copiálo para criar um arquivo de virtual host

para cada um de nossos domínios.

Vamos começar com um domínio, configurálo, copiálo para nosso segundo domínio, e então

fazer os pequenos ajustes necessários. A configuração padrão do Ubuntu requer que cada

arquivo de virtual host termine em  .conf .

Começe copiando o

arquivo para o primeiro

domínio:

sudo cp /etc/apache2/sites‐available/000‐default.conf /etc/apache2/sites‐available/

Abra o novo arquivo em seu editor com privilégios de root:

sudo nano /etc/apache2/sites‐available/example.com.conf

O arquivo será algo parecido com isso (eu removi os comentários aqui para tornar o arquivo

mais acessível):

<VirtualHost *:80>    ServerAdmin webmaster@localhost    DocumentRoot /var/www/html    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>

Como você pode ver, não há muito aqui. Vamos personalizar os itens aqui para nosso

primeiro domínio e adicionar algumas diretivas adicionais. Esta seção de virtual host

corresponde a quaisquer requisições que são feitas na porta 80, a porta padrão HTTP.

Page 6: Como Configurar Apache Virtual Hosts No Ubuntu 14

Copie o primeiro Virtual Host e personalizeo parao Segundo Domínio

Em primeiro lugar, precisamos alterar a diretiva  ServerAdmin  para um email que o

administrador do site possa receber emails por ele.

ServerAdmin [email protected]

Depois disso, precisamos adicionar duas diretivas. A primeira, chamada ServerName,

estabelece o domínio de base que deve corresponder à esta definição de virtual host. Este

provavelmente será o seu domínio. A segunda, chamada ServerAlias, define outros nomes que

devem corresponder como se fossem o nome de base. Isto é útil para a correspondência de

hosts que você definiu, como www:

ServerName example.comServerAlias www.example.com

A outra única coisa que precisamos mudar para o arquivo de virtual host básico é a

localização do documento raiz para este domínio. Nós já criamos o diretório que precisamos,

então precisamos apenas alterar a diretiva  DocumentRoot  para refletir o diretório que

criamos:

DocumentRoot /var/www/example.com/public_html

No total, nosso arquivo de virtualhost deve ficar assim:

<VirtualHost *:80>    ServerAdmin [email protected]    ServerName example.com    ServerAlias www.example.com    DocumentRoot /var/www/example.com/public_html    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>

Salve e feche o arquivo.

Agora que temos

nosso primeiro arquivo

de virtual host criado,

podemos criar nosso segundo copiando esse arquivo e ajustandoo conforme necessário.

Page 7: Como Configurar Apache Virtual Hosts No Ubuntu 14

Comece copiandoo:

sudo cp /etc/apache2/sites‐available/example.com.conf /etc/apache2/sites‐available/

Abra o novo arquivo com privilégios de root em seu editor:

sudo nano /etc/apache2/sites‐available/test.com.conf

Agora você precisa modificar todas as informações pertinentes para referenciar seu segundo

domínio. Quando terminar, ele será algo parecido com isto:

<VirtualHost *:80>    ServerAdmin [email protected]    ServerName test.com    ServerAlias www.test.com    DocumentRoot /var/www/test.com/public_html    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>

Salve e feche o arquivo quando terminar.

Passo Cinco  Ative os novos arquivos deVirtual HostAgora que criamos nossos arquivos de virtual host, devemos ativálos. O Apache inclui

algumas ferramentas que nos permitem fazer isto.

Podemos utilizar a ferramenta  a2ensite  para ativar cada um de nossos sites assim:

sudo a2ensite example.com.confsudo a2ensite test.com.conf

Quando terminar, você precisará reiniciar o Apache para fazer com que estas alterações

tenham efeito:

sudo service apache2 restart

Page 8: Como Configurar Apache Virtual Hosts No Ubuntu 14

Você provavelmente irá receber uma mensagem dizendo algo como:

* Restarting web server apache2 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

Esta é uma mensagem inofensiva que não afeta o nosso site.

Passo Seis  Configure o arquivo de hostslocal (Opcional)Se você não usou os nomes de domínio reais que você possui para testar este procedimento

e tem usado alguns exemplos de domínios em vez disso, você pode testar ao menos a

funcionalidade desse processo modificando temporariamente o arquivo  hosts  em seu

computador local.

Isto irá interceptar todas as requisições para os domínios que você configurou e os apontará

para o seu servidor VPS, da mesma forma que o DNS faria se você estivesse utilizando

domínios registrados. Isto irá funcionar somente em seu computador, e é útil simplesmente

para propósitos de testes.

Certifiquese de que você está operando em seu computador local para estas etapas e não no

seu servidor VPS. Você precisará da senha administrativa do computador ou de outra forma,

ser membro do grupo administrativo.

Se você está em um computador Mac ou Linux, edite seu arquivo local com privilégios

administrativos digitando:

sudo nano /etc/hosts

Se você estiver em uma máquina Windows, você poderá encontrar instruções para alteração

do seu arquivo hosts aqui.

Os detalhes que você precisa adicionar são o endereço IP público do seu servidor VPS

seguido pelo domínio que você quer usar para alcançar esse VPS.

Para os domínios que eu utilizei neste guia, assumindo que o endereço IP do meu servidor

Page 9: Como Configurar Apache Virtual Hosts No Ubuntu 14

VPS é  111.111.111.111 , eu poderia adicionar as seguintes linhas no final do meu arquivos

hosts:

127.0.0.1   localhost127.0.1.1   guest‐desktop111.111.111.111 example.com111.111.111.111 test.com

Isso irá direcionar todas as requisições para  example.com  e test.com  em nosso

computador e enviálas para nosso servidor em 111.111.111.111 . Isso é o que queremos se

não somos os proprietários desses domínios, de forma a testar nossos virtual hosts.

Salve e feche o arquivo.

Passo Sete  Teste seus resultadosAgora que você tem seus virtual hosts configurados, você pode testar sua configuração

facilmente indo para os domínios que você configurou em seu navegador web:

http://example.com

Você deve ver uma página parecida com esta:

Success! The example.com virtual host isworking!Da mesma forma, você puder visitar sua segunda página:

http://test.com

Você verá o arquivo que você criou para seu segundo site:

Success! The test.com virtual host isworking!Se ambos os sites funcionaram bem, você configurou com sucessodois virtual hosts no

mesmo servidor.

Page 10: Como Configurar Apache Virtual Hosts No Ubuntu 14

Se você ajustou o arquivo hosts do seu computador doméstico, você pode querer apagar as

linhas que você adicionou, agora que você verificou que a sua configuração funciona. Isto irá

evitar que seu arquivo hosts fique cheio de entradas que não são realmente necessárias.

Se você precisar acessálos por longo tempo, considere a compra do nome de domínio para

cada site que precisar e configureos para apontar para seu servidor VPS.

ConclusãoSe você acompanhou, você deve ter um único servidor tratando dois nomes de domínios

separados. Você pode expandir este processo seguindo os passos que traçamos acima para

fazer virtual hosts adicionais.

Não há nenhum limite de software no número de domínios que o Apache pode tratar, então

sintase livre para fazer tantos quanto o seu servidor for capaz de suportar.

Por Justin Ellingwood