Mudanças entre as edições de "Apache - configurando domínios com vhost"

De Pontão Nós Digitais
(Estrutura de diretórios)
(Estrutura de diretórios)
Linha 27: Linha 27:
  
 
As partes em negrito representam os nomes de domínio que estamos querendo servir através de nosso servidor.
 
As partes em negrito representam os nomes de domínio que estamos querendo servir através de nosso servidor.
 +
 +
Você pode colocar um código de teste para verificar o funcionamento da página depois:
 +
 +
  <html>
 +
  <head>
 +
    <title>Exemplo!</title>
 +
  </head>
 +
  <body>
 +
      <h1>Olá Mundo! Sucesso!</h1>
 +
    </body>
 +
  </html>
  
 
2 - Acrescente também, no endereçamento interno da máquina, os endereços que quiser. Isso server tanto para loopback quanto para endereço externo. No arquivo /etc/hosts coloque as linhas:  
 
2 - Acrescente também, no endereçamento interno da máquina, os endereços que quiser. Isso server tanto para loopback quanto para endereço externo. No arquivo /etc/hosts coloque as linhas:  

Edição das 16h37min de 15 de junho de 2015

Quando temos um servidor próprio, isto é, um servidor autonomamente configurado ou ainda uma conta do tipo cloud ou VPS, precisaremos configurar manualmente o Apache para resolver diferentes endereços de domínio numa mesma máquina. Em outras palavras, uma vez tendo um servidor que vai hospedar diferente sites com diferentes endereços precisaremos dizer para o apache onde estão as pastas que devem responder aos respectivos endereços.

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.

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.

Vamos ver como isso funciona.

Pre requisitos

  • Apache ou Lamp completo instalado.
  • Usuário non-root para configurar o domínio e permissões de acesso
  • Estamos tomando como base um servidor linux Debian 8.0 devidamente instalado e com ip fixo configurado;

Estrutura de diretórios

O primeiro passo é criar uma estrutura de diretório que irá armazenar os dados do(s) site(s) que estará(ão) 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. Por padrão o Apache coloca o endereço /var/www/html, mas vamos criar um diretório especial.

1 - 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:

 # mkdir -p /var/www/site1.com.br/public_html
 # mkdir -p /var/www/site2.org.br/public_html

As partes em negrito representam os nomes de domínio que estamos querendo servir através de nosso servidor.

Você pode colocar um código de teste para verificar o funcionamento da página depois:

 <html>
 <head>
   <title>Exemplo!</title>
 </head>
 <body>

Olá Mundo! Sucesso!

   </body>
 </html>

2 - Acrescente também, no endereçamento interno da máquina, os endereços que quiser. Isso server tanto para loopback quanto para endereço externo. No arquivo /etc/hosts coloque as linhas:

 127.0.0.1 site1.com.br Site1
 127.0.0.1 site2.org.br Site2
 200.133.0.99 site1.com.br Site1 (o IP 200.133.0.99 em questão é apenas um exemplo de ip fixo)
 200.133.0.99 site2.org.br Site2

Permissões

Depois da estrutura de diretórios para os arquivos é preciso desassociá-los do root e associá-los aos usuários devidos. Se quisermos que nosso usuário regular esteja apto a modificar arquivos em nossos diretórios web, podemos alterar o proprietário fazendo isto:

 # chown -R $USER:$USER /var/www/example.com/public_html
 # 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:

 # 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.

Referências