Apache instalado no CentOS? Aprenda a ter vários sites

17 Comentários

Qualquer distribuição Linux tem as características perfeitas para implementar os mais diversos serviços de rede. Num dos últimos tutoriais ensinamos a instalar o servidor Web mais popular do mundo, o Apache.

Hoje vamos mostrar como podem ter, no CentOS 7, vários sites num único servidor Web.



Apache Web Server

O Apache Web Server foi criado em 1995 por Rob McCoolque, que na altura era funcionário da NCSA (National Center for Supercomputing Applications).

Este servidor Web é distribuído numa variedade de plataformas impressionante, deste o Windows, Linux, Novel, Mac, OS/2 BeOS e muitos outros. O Apache continua a ser um dos serviços Web mais populares, de acordo com a NetCraft.


CentOS 7 instalado? Vamos instalar o servidor Web Apache

Como ter vários sites no Apache usando Virtual Hosts?

Existem diversas configurações que permitem ter vários sites disponíveis num único servidor Web. A forma mais simples é criando Virtual Hosts. A criação de Virtual Hosts permite que, numa única máquina, possamos ter vários sites, sendo que cada um pode estar associado a um nome ou a um endereço IP.

O Apache suporta dois tipos de VHs (Virtual Hosts)

  • VHs baseados em nome: ou seja, num único endereço IP é possível ter um número ilimitado de VHs, sendo que o Apache os distingue pelo nome;
  • VHs baseados no endereço IP: é necessário que para cada VHs exista um endereço IP, sendo que o Apache distingue os VHs pelo endereço IP da ligação;

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

  • Nome do site1– idog.pplware.com
    • Alojado em /var/www/html/idog
  • Nome do site2– icat.pplware.com
    • Alojado em /var/www/html/icat
  • Nome do site3– ishark.pplware.com
    • Alojado em /var/www/html/ishark

 

Criar estrutura

Vamos então começar por criar os diretórios para cada site. Para isso basta que usem o seguinte comando:

mkdir idog icat ishark

Em seguida criem um ficheiro (podem usar o editor nano) com o nome index.html, em cada um dos diretórios. Por exemplo, para o ficheiro index.html do diretório icat vamos colocar a seguinte informação:

Façam o mesmo para o index.html do diretório idog e ishark. Para testarem já nesta fase podem, por exemplo, indicar o endereço IP do servidor /diretório do vosso site. No caso do icat o resultado deverá ser o seguinte.

 

Aceder aos sites por nome

Uma vez que pretendemos aceder aos sites por nome, vamos agora criar os seguintes diretórios:

mkdir /etc/httpd/sites-available
mkdir /etc/httpd/sites-enabled

sites-available – Neste diretório vamos guardar as configurações de todos os sites que iremos ter na máquina.

sites-enabled – Neste diretório vamos ter um link simbólico para os sites que pretendemos ter ativos no servidor.

Depois de criados os diretórios anteriores, devem indicar no ficheiro de configuração do Apache (/etc/httpd/conf/httpd.conf) que deverão ser carregadas as configurações dos sites que se encontram no diretório sites-enabled. Não se esqueçam de fazer um backup do ficheiro de configuração do Apache.

A informação a colocar no final do ficheiro httpd.conf é a seguinte:

IncludeOptional sites-enabled/*.conf

 

Criar um Virtual Host

Vamos agora para o diretório/etc/httpd/sites-available para criar os virtual hosts para cada um dos sites. Para este tutorial vamos ensinar como criar para o site icat.conf.

Nota: Devem criar o diretório /var/log/httpd/<nome_do_site>

Explicação das directivas mais importantes:

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

 

Ativar Virtual Hosts

Para ativar um Virtual Host basta que crie um link simbólico do ficheiro de configuração no diretório sites-enabled.

ln -s /etc/httpd/sites-available/icat.conf /etc/httpd/sites-enabled/icat.conf

No final de todas as configurações devem reiniciar o Apache usando o comando:

systemctl restart httpd

 

Como testar…

A forma mais simples de testar e uma vez que não temos um serviço de DNS disponível, é mapear os nomes do sites no respetivo endereço do servidor no ficheiro hosts. No macOS, para este tutorial, usamos a ferramenta Hosts. De referir que esta é uma máquina que se encontra na rede local e tem acesso ao servidor.

Estando tudo configurado, basta acederem da máquina onde alteraram o ficheiro hosts ao servidor web… só que desta vez podem fazê-lo por nome.

Como desafio, criem agora os restantes Virtual Hosts. Depois de tudo bem configurado, reiniciem o Apache e testem a partir de outra máquina na rede. Caso tenham algum problema com as configurações, deixem nos comentários que nós damos uma ajuda.

Comentários

17

Deixe um comentário

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

  1. Avatar de arc
    arc

    PPinto, não te esqueças de falar sobre a importância da segurança no Apache num próximo artigo teu.

      1. Avatar de Charles
        Charles

        @Equipe PPlware, poderiam me informar qual o plugins que usam no WordPress para gerar os seus artigos em PDF?

        Obrigado.

  2. Avatar de Amilcar Alho
    Amilcar Alho

    Tive essa tarefa há pouco mais de um mês. Em Ubuntu Server. Mas os passos são os mesmos (VHs no Apache).
    Andei a anhar, mas agora, venham mais! 🙂

  3. Avatar de Asdrubal
    Asdrubal

    Maravilha! 🙂

  4. Avatar de Luis
    Luis

    Docker everywhere

    1. Avatar de Pedro Pinto

      Docker no CentOS? Próximo desafio 🙂

      1. Avatar de Luis
        Luis

        Porque não 🙂 MAs em CoreOS ou RanchOS era mais bonitinho

  5. Avatar de Henrique Martins
    Henrique Martins

    Muito bom! Se fizessem tutorial com o NGINX (engine-x) em vez de Apache seria muito util para mim! Pensem nisso 😉

    1. Avatar de Pedro Pinto

      eh eh eh. Desafio aceite!

  6. Avatar de arc
    arc

    Já que estamos numa de pedidos…era para o meu lanche…uns jesuítas e uns limonetes da Confeitaria Moura em Santa Tirso!

  7. Avatar de arc
  8. Avatar de João
    João

    O meu último desafio foi colocar um site em ASP.NET Core no Ubuntu 16.4 (Vultr) com o kestrel a fazer reverse proxy para o Nginx. (SQL server também no Ubuntu) Foi giro.

  9. Avatar de plenop
    plenop

    o sites-enabled/available é para distros debian, como o ubuntu.
    no centos por norma não se utilizam esses 2 diretorios.
    dentro do conf.d crias um vhosts.d e lá dentro crias as confs, preferencialmente isolando a http da https.

    1. Avatar de Duarte
      Duarte

      Algum tutorial sobre isso?

  10. Avatar de Ricardo Ruivo
    Ricardo Ruivo

    No CentOS os comando sudo a2ensite icat.conf não funcionam como no Ubuntu?
    Os tão queridos a2ensite, a2dissite, a2enmod, a2dismod??

  11. Avatar de Washington
    Washington

    Artigo muito bom, parabéns.