Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Instalando e Configurando Hosts Virtuais Apache 2 [Kubuntu 9.10]

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Artigo Instalando e Configurando Hosts Virtuais Apache 2 [Kubuntu 9.10]

    Hosts Virtuais são usados para que em uma única máquina física, com um único servidor Web (Apache) possa rodar diversos hosts (sites) com o mesmo IP. O melhor exemplo disso, é o que a Locaweb faz ao alocar sites, ínumeros sites para um único IP. Então vamos lá:

    Primeiramente é necessário instalar o pacote Apache mais atual, digitando o comando abaixo ele atualizará o Banco de Dados dos programas e versões disponíveis ao seu sistema, note que é necessário rodar como usuário privilegiado para fazer alterações no sistema:

    matante@omega:~$ sudo apt-get update

    Ele solicitará a senha do usuário e baixará uma lista dos programas mais atuais. Por fim até o presente momento a versão mais atual do Web Server Apache é a 2, então, vamos instalá-la:

    matante@omega:~$ sudo apt-get install apache2

    Com isso ele mostrará todas as bibliotecas e pacotes que serão instalados para o perfeito funcionamento do programa, ele pergunta se deseja instalar, dando como opção [S/n]. Aperte "s" para continuar a instalação e espere finalizar. Assim que o prompt voltar ao normal, abra o browser de sua preferência e digite "127.0.0.1" ou "localhost" (sem as aspas). Deverá aparecer "It Works" sinalizando que funcionou a instalação e o Apache encontra-se rodando.
    Caso falhe reinicie o serviço e tenta novamente com:

    matante@omega:~$ sudo /etc/init.d/apache2 restart

    Após ter a certeza que o Apache encontra-se funcionando, vamos ao entendimento. O diretório padrão do Apache se localiza em /etc/apache2, abaixo os arquivos e diretórios que iremos utilizar:

    apache2.conf -> principal arquivo de configuração do Apache;
    httpd.conf -> principal arquivo de configuração em algumas releases do apache, similar ao apache2.conf;
    ports.conf -> arquivo responsável pelas portas no qual o servidor apache ficará escutando requisições, bem como os Ips utilizados para acessá-lo;
    sites-available -> diretório no qual os arquivos de configurações do hosts (sites) ficam disponíveis, porém não em uso;
    sites-enabled -> diretório no qual os arquivos de configurações dos hosts (sites) ficam disponíveis e habilitados (em uso);

    Uma maneira simples de sincronizar e entender os dois diretórios acima, é criando o arquivo do host no diretório sites-available e criando um link simbólico em sites-enabled para ele.
    Então vamos querer 3 hosts virtuais, compartilhando o mesmo IP. Ex: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
    Assim existirá 3 arquivos de configuração dentro do diretório sites-available. Note que já existe um arquivo dentro de sites-available chamado de default (é o arquivo responsável pela página de demonstração do apache), copie ele para usar como base:

    matante@omega:/etc/apache2/sites-available$ cp default teste1
    matante@omega:/etc/apache2/sites-available$ cp default teste2
    matante@omega:/etc/apache2/sites-available$ cp default teste3

    Após isto, vamos criar o link simbólico dentro de sites-enabled:

    matante@omega:/etc/apache2/sites-enabled$ ln -s ../sites-available/teste1 teste1
    matante@omega:/etc/apache2/sites-enabled$ ln -s ../sites-available/teste2 teste2
    matante@omega:/etc/apache2/sites-enabled$ ln -s ../sites-available/teste3 teste3

    Feito isto vamos editar cada arquivo dos hosts, altere ou crie (caso não exista) estes parâmetros e deixe da seguinte forma:

    <VirtualHost *>
    ServerName Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    ServerAlias teste1.com.br
    DocumentRoot /var/www/teste1
    DirectoryIndex /index.html

    Explicando: Ao deixar apenas "*" no VirtualHost vc está dizendo que esta página estará disponível através de qualquer IP e em qualquer porta, porém lembre-se que quem realmente controla isto é o arquivo ports.conf. ServerName é o nome pelo qual você deseja que seu host responda, e o ServerAlias é apenas uma convenção para uso sem o www, já que a porta 80 já está associada a isto. DocumentRoot é o diretório onde forms, imagens e scripts da sua página estará. Pode existir aonde você quiser, usei o relatado acima pois é onde o Apache utiliza por default. E a diretiva DirectoryIndex é para o host virtual inicializar direto neste form, para não ter que digitar Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Repita as mesmas etapas nos arquivos de configurações dos hosts a serem criados, lembrando de adaptar as diretivas de acordo com cada host.

    Após isto é necessário criar o diretório que terá os forms, scripts, imagens e tudo mais relacionado a página em si. Como dito acima utilizei o /var/www porque é o padrão do Apache e onde a página de demonstração está criada. Lembre-se o local e a página de inicialização devem ser idênticos ao descrito no arquivo de configuração do host, como expliquei acima.

    Concluindo é necessário alterar o arquivo ports.conf, de forma que ele escute em todos os IPs e na porta 80:

    NameVirtualHost *
    Listen 80

    Agora finalmente devemos adicionar os hosts virtuais ao Apache com o comando "a2ensite", da seguinte forma:

    matante@omega:/etc/apache2/sites-enabled$ sudo a2ensite teste1
    Enabling site teste1.
    matante@omega:/etc/apache2/sites-enabled$ sudo a2ensite teste2
    Enabling site teste2.
    matante@omega:/etc/apache2/sites-enabled$ sudo a2ensite teste3
    Enabling site teste3.

    Observe que o parâmetro que acompanha o comando é o nome do arquivo de configuração do host virtual. Após isto reinicie o serviço Apache:

    matante@omega:~$ sudo /etc/init.d/apache2 restart

    Abra o Browser e coloque: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... ou Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., se o seu form inicial estiver dividamente criado e apontado no arquivo de configuração, irá abrir normalmente como hosts separados. Ou seja hosts virtuais.

    Obs: Esta resolução ocorre apenas localmente, tenha em mente que resoluções de nome em uma rede pública é feita por DNS.
    Necessitando de uma configuração a mais. O demonstrado neste artigo foi apenas a criação e configuração no Apache. Até para funcionar numa Lan, seria necessário uma configuração em DNS. Apenas quis demonstrar a criação de intranets ou mesmo sites diversos utilizando o mesmo IP, como relatado acima o que a Locaweb utiliza.
    Existem outras maneiras de se fazer o mesmo, espero ter demonstrado a mais simples.

    Caso alguém queira complementar, corrigir ou perguntar estou disposto a ajudar.

    By Matante
X
Working...
X