Apache - configurando domínios com vhost: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Linha 19: Linha 19:
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.  
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.  


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.
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:
Por exemplo, para nossos sites, nós vamos criar nossos diretórios assim:


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


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


3 - Acrescente também, no endereçamento interno da máquina, os endereços que quiser. 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:  


   127.0.0.1 testando.teste.com.br testando
   127.0.0.1 ''site1.com.br'' Site1
   127.0.0.1 dominio.teste1.net dominio
   127.0.0.1 ''site2.org.br'' Site2
  '''200.133.0.99''' ''site1.com.b''r 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 ==
== Referências ==

Edição das 15h27min 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.

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