Introdução

Este tutorial irá guiá-lo na configuração de vários domínios e sites usando hosts virtuais do Apache em um servidor Ubuntu 18.04. Durante esse processo, você aprenderá como distribuir conteúdo diferente para visitantes diferentes, dependendo de quais domínios eles estiverem solicitando.

Para uma versão mais detalhada deste tutorial, com mais explicações de cada passo, consulte o tutorial sobre Como configurar hosts virtuais do Apache no Ubuntu 18.04.

Pré-requisitos

apache illustration for: Pré-requisitos

Para completar este tutorial, será necessário ter acesso ao seguinte em um servidor Ubuntu 18.04:

  • Um usuário sudo no seu servidor
  • Um servidor Web Apache2, que pode ser instalado com sudo apt install apache2

Passo 1 — Criar a estrutura de diretório

Primeiro, vamos criar uma estrutura de diretórios que retenha os dados do site que vamos distribuir aos visitantes em nosso diretório Apache de nível superior. Vamos usar exemplos de nomes de domínio, conforme destacadosabaixo. Você deverá substituí-los por seus próprios nomes de domínio.

				
					
sudo mkdir -p /var/www/<^>example.com<^>/public_html

sudo mkdir -p /var/www/<^>test.com<^>/public_html

				
			

Passo 2 — Conceder permissões

Agora, devemos alterar as permissões para que nosso usuário não raiz atual consiga modificar os arquivos.

				
					
sudo chown -R $USER:$USER /var/www/<^>example.com<^>/public_html

sudo chown -R $USER:$USER /var/www/<^>test.com<^>/public_html

				
			

Além disso, vamos garantir que o acesso de leitura seja concedido ao diretório Web geral – e todos os arquivos e pastas que ele contém, para que as páginas possam ser atendidas corretamente.

				
					
sudo chmod -R 755 /var/www

				
			

Passo 3 — Criar páginas de demonstração para cada host virtual

Vamos criar um conteúdo para distribuir. Além disso, criaremos uma página index.html de demonstração para cada site. Podemos abrir um arquivo index.html em um editor de texto para nosso primeiro site, usando o nano por exemplo.

				
					
nano /var/www/<^>example.com<^>/public_html/index.html

				
			

Dentro desse arquivo, crie um documento HTML específico do domínio, como o seguinte:

				
					
[label /var/www/example.com/public_html/index.html]

<html>

  <head>

    <title>Welcome to <^>Example.com<^>!</title>

  </head>

  <body>

    <h1>Success! The <^>example.com<^> virtual host is working!</h1>

  </body>

</html>

				
			

Salve e feche o arquivo e, em seguida, copie esse arquivo para usar como base para nosso segundo site:

				
					
cp /var/www/<^>example.com<^>/public_html/index.html /var/www/<^>test.com<^>/public_html/index.html

				
			

Abra o arquivo e modifique as informações relevantes:

				
					
nano /var/www/<^>test.com<^>/public_html/index.html

				
			
				
					
[label /var/www/test.com/public_html/index.html]

<html>

  <head>

    <title>Welcome to <^>Test.com<^>!</title>

  </head>

  <body> <h1>Success! The <^>test.com<^> virtual host is working!</h1>

  </body>

</html>

				
			

Salve e feche esse arquivo também.

Passo 4 — Criar arquivos do host virtual

O Apache vem com um arquivo de host virtual padrão chamado 000-default.conf que usaremos como modelo. Vamos copiá-lo para criar um arquivo de host virtual para cada um dos nossos domínios.

Crie o primeiro arquivo de host virtual

Comece copiando o arquivo para o primeiro domínio:

				
					
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/<^>example.com<^>.conf

				
			

Abra o novo arquivo no seu editor (estamos usando o nano abaixo) com privilégios raiz:

				
					
sudo nano /etc/apache2/sites-available/<^>example.com<^>.conf

				
			

Vamos personalizar esse arquivo para nosso próprio domínio. Modifique o texto destacado abaixo de acordo com suas próprias necessidades suas próprias circunstâncias.

				
					
[label /etc/apache2/sites-available/example.com.conf]

<VirtualHost *:80>

    ServerAdmin <^>admin@example.com<^>

    ServerName <^>example.com<^>

    ServerAlias <^>www.example.com<^>

    DocumentRoot /var/www/<^>example.com<^>/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

				
			

Neste ponto, salve e feche o arquivo.

Copiar o primeiro host virtual e personalizar para o segundo domínio

Agora que temos o nosso primeiro arquivo de host virtual estabelecido, podemos criar nosso segundo, copiando aquele arquivo e ajustando o arquivo, conforme necessário.

Comece copiando-o:

				
					
sudo cp /etc/apache2/sites-available/<^>example.com<^>.conf /etc/apache2/sites-available/<^>test.com<^>.conf

				
			

Abra o novo arquivo com privilégios raiz em seu editor:

				
					
sudo nano /etc/apache2/sites-available/<^>test.com<^>.conf

				
			

Agora, será necessário modificar todas as informações para referenciar seu segundo domínio. O arquivo final deve se parecer com este, com o texto destacado correspondendo às suas próprias informações de domínio relevantes.

				
					
[label /etc/apache2/sites-available/test.com.conf]

<VirtualHost *:80>

    ServerAdmin <^>admin@test.com<^>

    ServerName <^>test.com<^>

    ServerAlias <^>www.test.com<^>

    DocumentRoot /var/www/<^>test.com<^>/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

				
			

Salve e feche o arquivo quando você terminar.

Passo 5 — Habilitar os novos arquivos de host virtual

Com nossos arquivos de host virtual criados, precisamos habilitá-los. Vamos usar a ferramenta a2ensite para alcançar esse objetivo.

				
					
sudo a2ensite <^>example.com<^>.conf

sudo a2ensite <^>test.com<^>.conf

				
			

Em seguida, desabilite o site padrão definido em 000-default.conf:

				
					
sudo a2dissite 000-default.conf

				
			

Quando terminar, será necessário reiniciar o Apache para essas alterações fazerem efeito e usar o systemctl status para verificar o sucesso da reinicialização.

				
					
sudo systemctl restart apache2

				
			

Agora, seu servidor deve estar configurado para atender dois sites.

Passo 6 — Configurar o arquivo de hosts locais (opcional)

Se você ainda não estiver usando seus próprios nomes de domínios para testar esse procedimento, mas venha usando alguns exemplos domínios, você poderá testar o seu trabalho, alterando temporariamente o arquivo hosts em seu computador local.

Em uma máquina local Mac ou Linux, digite o seguinte:

				
					
[environment local]

sudo nano /etc/hosts

				
			

Utilizando os domínios usados neste guia e substituindo o IP do seu servidor pelo texto <^>your_server_IP<^>, seu arquivo deverá ficar com a seguinte aparência:

				
					
[environment local]

[label /etc/hosts]

127.0.0.1   localhost

127.0.1.1   guest-desktop

&lt;^&gt;your_server_IP example.com&lt;^&gt;

&lt;^&gt;your_server_IP test.com&lt;^&gt;

				
			

Salve e feche o arquivo. Isso direcionará quaisquer pedidos para o example.com e o test.com em nosso computador e os enviará para nosso servidor.

Passo 7 — Testar seus resultados

Agora que seus hosts virtuais estão configurados, você pode testar suas configurações, acessando os domínios que configurou em seu navegador Web.

				
					
http://&lt;^&gt;example.com&lt;^&gt;

				
			

Você deve ver uma página como esta:

Você também pode acessar sua segunda página e ver o arquivo que criou para seu segundo site.

				
					
http://&lt;^&gt;test.com&lt;^&gt;

				
			

Caso ambos esses sites funcionarem conforme o esperado, significa que você configurou dois hosts virtuais no mesmo servidor.

Caso tenha ajustado o arquivo hosts do seu computador caseiro, exclua as linhas que adicionou.