Como Criar um Virtual Host Apache no CentOS 9 Stream
Se você planeja hospedar mais de um domínio em seu servidor, é necessário criar os hosts correspondentes no servidor virtual. Desta maneira, o servidor conseguirá entregar conteúdos diferentes para cada solicitação.
Neste tutorial, você irá aprender como criar um Virtual Host Apache no CentOS 9 Stream justamente com essa finalidade. Vamos lá?
Conteúdo
1. Instale o Apache no CentOS 9
Antes de começar, certifique-se de que você tem acesso root ao seu VPS ou servidor por meio de uma conexão SSH. Na Hostinger, você pode encontrar essas credenciais na aba Servidores do hPanel.
1. Instale o Apache na sua máquina CentOS 9 executando o comando abaixo:
sudo yum -y install httpd
2. Após a instalação ser finalizada, ative o Apache como um serviço do CentOS:
sudo systemctl enable httpd.service
3. Visite o endereço IP do seu servidor para checar se o Apache está rodando. Caso positivo, a página deverá parecer com esta abaixo:
2. Crie a Estrutura de Diretórios
Uma estrutura de diretórios é essencial para guardar os dados dos seus sites.
1. Primeiramente, aponte o diretório de trabalho para /var/www executando o comando abaixo:
cd /var/www/
2. Você deve usar um root de documento único para cada host virtual:
mkdir -p seudominio.com/public_html
Lembre-se de substituir seudominio.com pelo seu domínio em si.
3. Torne o diretório acessível pelo Apache. Execute o comando chown para mudar a propriedade da pasta e o comando chmod para configurar as permissões certas para o diretório web.
chown -R apache:apache /var/www/seudominio.com/public_html chmod -R 755 /var/www
Agora, o Apache tem as permissões necessárias para criar diretórios adicionais e exibir o conteúdo para as solicitações que virão.
3. Crie uma Página de Demonstração
É recomendável criar uma página de demonstração para seus hosts virtuais Apache. Desta forma, você pode checar se cada host está funcionando antes de enviar os arquivos dos sites. Aqui está o passo-a-passo para fazer isso:
1. Use o editor Nano para criar um arquivo index.html no seu diretório seudominio.com/public_html:
nano seudominio.com/public_html/index.html
2. Cole o código a seguir no arquivo:
<html> <head> <title>Esta é uma página de teste</title> </head> <body> <h1>Está funcionando!</h1> </body> </html>
Após inserir as linhas, salve o arquivo.
4. Crie o Virtual Host Apache
1. Crie um novo arquivo .conf (referente ao host virtual) no diretório de configuração Apache:
nano /etc/httpd/conf.d/yourdomain.com.conf
2. Insira o código abaixo no arquivo .conf:
<VirtualHost *:80> ServerName www.seudominio.com ServerAlias seudominio.com DocumentRoot /var/www/seudominio.com/public_html ErrorLog /var/www/seudominio.com/error.log CustomLog /var/www/seudominio.com/requests.log combined </VirtualHost>
No exemplo acima, nós instruímos o Apache a usar a porta 80 para comunicação e seudominio.com como nome do host virtual. Além disso, nós especificamos os diretórios para os arquivos do site (DocumentRoot) e para os relatórios de erros (ErrorLog).
3. Reinicie o Apache para que as mudanças entrem em ação:
systemctl restart httpd.service
Pronto, você criou um virtual host Apache para seu domínio! Agora, tente acessar o host e você deverá ver a mensagem “Está funcionando!” da página de demonstração que criamos antes.
Conclusão
Agora você sabe como criar um Virtual Host Apache no CentOS 9 Stream. Para recapitular, vamos dar uma olhada nos passos principais:
- Instale o Apache no CentOS.
- Crie uma estrutura de diretórios que será usada para receber todos os arquivos dos seus sites.
- Faça uma página de demonstração para checar se o host virtual está funcionando corretamente.
- Crie o host virtual configurando os arquivos no diretório Apache.
Esperamos que esse tutorial tenha sido útil. Sinta-se à vontade para fazer um comentário abaixo caso você tenha quaisquer dúvidas!
Comentários
August 10 2022
usar os diretórios sites-available sites-enabled fica com o bug: ao digitar o endereço do site com o www, ele pega o site instalado em /var/www/nome_do_site/public_html. Ao digitar o endereço sem o www, ele pega o site do antigo endereço /var/www/html O coreto e por o arquivo de configuração dentro de /etc/httpd/conf.d Isso deu certo pra mim: https://www.linuxnaweb.com/configurando-lets-encrypt-no-centos-7/