Apache instalado no CentOS? Aprenda a ter vários sites
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
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.
Este artigo tem mais de um ano
PPinto, não te esqueças de falar sobre a importância da segurança no Apache num próximo artigo teu.
Combinado! 😀
@Equipe PPlware, poderiam me informar qual o plugins que usam no WordPress para gerar os seus artigos em PDF?
Obrigado.
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! 🙂
Maravilha! 🙂
Docker everywhere
Docker no CentOS? Próximo desafio 🙂
Porque não 🙂 MAs em CoreOS ou RanchOS era mais bonitinho
Muito bom! Se fizessem tutorial com o NGINX (engine-x) em vez de Apache seria muito util para mim! Pensem nisso 😉
eh eh eh. Desafio aceite!
Já que estamos numa de pedidos…era para o meu lanche…uns jesuítas e uns limonetes da Confeitaria Moura em Santa Tirso!
*Santo Tirso
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.
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.
Algum tutorial sobre isso?
No CentOS os comando sudo a2ensite icat.conf não funcionam como no Ubuntu?
Os tão queridos a2ensite, a2dissite, a2enmod, a2dismod??
Artigo muito bom, parabéns.