Linux

Vamos aprender a instalar um servidor Web no CentOS – Parte2

20 Comentários

Dica – Como ter vários sites no Apache usando Virtual hosts?

A semana passada um colega meu pediu-me ajuda para um trabalho que tinha de realizar no âmbito de um curso profissional. O objectivo do trabalho era instalar e configurar um servidor Web (preferencialmente o Apache), em Linux e colocar três sites em funcionamento, sendo que cada site deveria responder por um nome diferente.

Considerando que este tipo de informação pode ser útil a outros leitores, criei um pequeno tutorial a ensinar como ter vários sites no mesmo servidor web (Apache).

centos_00


Para este tutorial vamos considerar as seguintes informações/configurações:

  • Distribuição Linux: CentOS 6.2
  • IP do servidor: 192.168.1.10
  • Nome do site1 – wiki.pplware.com
  • Nome do site2 – forum.pplware.com
  • Nome do site3 – pplware.com

Para quem está habituado a trabalhar com servidores Web, sabe que configurar este tipo de serviços é algo que não é muito difícil. No CentOS, a maioria das configurações do Apache é realizada no ficheiro /etc/httpd/conf/httpd.conf.

Como ter vários sites no Apache usando virtual hosts?

Existem várias configurações que permitem ter vários sites disponíveis num único servidor Web. A forma mais simples é criando Virtual hosts e essa configuração pode ser facilmente realizada no ficheiro de configuração do apache. Para terem vários sites no Apache usando Virtual hosts por nome (também poderíamos ter Virtual Hosts por IP) devem seguir os seguintes passos:

Passo 1 – Para o presente exemplo vamos então abrir o ficheiro /etc/httpd/conf/httpd.conf e criar 3 virtual hosts:

…
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/wiki
ServerName wiki.pplware.com
ErrorLog logs/wiki.pplware.com-error_log
CustomLog logs/wiki.pplware.com-access_log common
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html/forum
ServerName forum.pplware.com
ErrorLog logs/forum.pplware.com-error_log
CustomLog logs/forum.pplware.com-access_log common
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html/site
ServerName pplware.com
ErrorLog logs/pplware.com-error_log
CustomLog logs/pplware.com-access_log common
</VirtualHost>

…

Exemplo de configuração no ficheiro httpd.conf

virtual_hosts

Explicação das directivas:

  • DocumentRoot – indicação da pasta onde está localizado o site
  • ServerName – Nome associado ao site

As duas linhas finais de cada virtual hosts referem-se aos logs (acesso e erro) para cada  site.

Passo 2 (opcional) – Com já referi em artigos anteriores, o serviço de DNS é para mim o “coração” de uma rede. Em traços gerais, este é responsável por traduzir nomes em IP’s e vice-versa, isto é, quando escrevemos www.pplware.com, há uma consulta ao DNS para saber qual o IP correspondente. Quem não tiver um servidor de DNS disponível para efectuar configurações, pode facilmente colocar a informação no ficheiro /etc/hosts para testar num ambiente local (No futuro ensinaremos a configurar um servidor de DNS)

127.0.0.1       wiki.pplware.com
127.0.0.1       forum.pplware.com
127.0.0.1       pplware.com

Exemplo de configuração no ficheiro hosts

hosts

Depois de terem realizado as configurações anteriores devem reiniciar o serviço httpd através do comando:

/etc/init.d/httpd restart

É hora de testar se tudo funciona! Para isso, abram um browser no servidor e introduzam os seguintes endereços:

Nota importante: A informação contida no ficheiro hosts leva prioridade sobre a informação do servidor de DNS definido. Assim, caso não necessitem mais das configurações, retirem as mesmas do ficheiro hosts. Se pretenderem aceder remotamente ao servidor Web, basta configurar os endereços referidos no ficheiros hosts da máquina remota (se for Windows, vejam aqui como fazer)

apache_01

Esperamos que este artigo seja de utilidade e esperamos brevemente trazer novas dicas. Se alguém tiver sugestões, não se esqueça de as deixar nos comentários.

Vamos montar um servidor passo a passo?

Autor: Pedro Pinto
Partilhar:
Tags:
Também pode gostar

Comentários

20

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Manuel Gamelas
    Manuel Gamelas

    Muito bom.

    Para quando um tutorial sobre a instalação de um mail server (qmail) no CentOS.

    Continuação do bom serviço publico de partilha de informação

  2. Avatar de jesus
    jesus

    Será que podem fazer um tutorial, no seguimento do actual, mas para um mta tipo o postfix?
    ehehe é que nas configurações do postfix + postfixadmin estou a patinar à longo tempo.

    Obrigado

      1. Avatar de jesus
        jesus

        obrigado pela dica não conhecia, mas esqueci de referir que utilizo o ambiente macosx.

  3. Avatar de jean
    jean

    Muito bom estava precisando de um tutorial mesmo sobre este assunto.

  4. Avatar de Nuno Mendes
    Nuno Mendes

    O Document Root tem de ser em /var/www/html(sei que é directorio de exemplo) mas gostava de saber se posso colocar noutro directorio ou ate mesmo noutro PC que esteja na minha rede domestica?

    1. Avatar de Pedro Pinto

      Usando Virtual Hosts podes colocar onde quiseres, basta depois indicares na Document Root. Imagina que colocas noutro PC, mas tens uma pasta mapeada no teu servidor.

  5. Avatar de Victor P.
    Victor P.

    Muito bom a continuação do trabalho anteriormente apresentado.
    Para quando a configuração de 1 servidor de backups 😉
    Continuação de um bom trabalho.

  6. Avatar de antonio
    antonio

    que preço são as licenças para estes programas ?

      1. Avatar de antonio
        antonio

        estas a brincar!!!
        então porque que a gente que usa windows para estas coisas?

        1. Avatar de Pedro Pinto

          eh eh eh, bem provavelmente porque:
          – consideram que é mais fácil
          – que tem melhor suporte
          – porque é tudo gráfico
          ….acho que são algumas razões 🙂

          1. Avatar de Alright
            Alright

            +1
            Tecnologias Microsoft!

        2. Avatar de paulo g.
          paulo g.

          Marketing… resistência à mudança por parte das pessoas, casmorrice, mentalidade de pirata, não ter o selo Microsoft e principalmente porque é o que se ensina por todo o lado.

  7. Avatar de QueroTenho

    Espero que o pplware continue assim em alta, mais um excelente tutorial, sem duvida o melhor Website de tecnologia nacional..

  8. Avatar de Filipe
    Filipe

    Isto funcionará à mesma se for acedido via internet de outras máquinas que não estejam na mesma rede?

    1. Avatar de José Maria Oliveira Simões
      José Maria Oliveira Simões

      A intenção é funcionar. Para isso tem que ter presente os conceitos e as funcionalidades de : firewall, router, gateway, DMZ e NAT.
      Se tiver um firewall, tem que deixar passar os pacotes de fora para dentro (internet para a intranet) referente ao porto 80. O melhor, é no router/firewall indicar na DMZ (zona desmilitarizada) o IP da maquina e o porto. Se tiver NAT, como penso que tem, tem que indicar a informação respeitante à DMZ. Tem que ter em atenção que o seu IP tem um tempo de leasing (pode mudar ou não) que lhe é dado pelo seu ISP. Consulte http://www.no-ip.com/comecar_com_pt.php e https://ppl.sitedev.pt/tutoriais/no-ip-eu-quero-um-ip-fixo/
      http://www.hardware.com.br/dicas/servicos-dns-dinamico.html

  9. Avatar de William Oliveira
    William Oliveira

    Cara já tentei de tudo aqui e não funciona… Quando configuro o host virtual como é dito aqui e entro com URL no browser só me aparece uma tela branca (mas não dá mensagem de erro). Quando eu coloco o index.php no diretório /var/www/html ele carrega normal. Tem uma idéia do que pode estar acontecendo?

    Mudaram a configuração do apache de uns tempos pra cá, agora tá um lixo pra configurar ele…

  10. Avatar de Brasil
    Brasil

    Estou tentando fazer este tutorial mas no parametro DocumentRoot eu coloco o caminho /home/usuario/www porém está retornando erro de permissão negada.

    Tentei mudar as permissões até para 777 porém continua o erro. Alguem pode me ajudar?