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.
Para completar este tutorial, será necessário ter acesso ao seguinte em um servidor Ubuntu 18.04:
sudo apt install apache2
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
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
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:
<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
<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.
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.
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.
<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.
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.
<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.
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.
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:
- sudo nano /etc/hosts
Para uma máquina local Windows, encontre instruções sobre como alterar o arquivo hosts aqui.
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:
127.0.0.1 localhost
127.0.1.1 guest-desktop
your_server_IP example.com
your_server_IP test.com
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.
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://example.com
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://test.com
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.
Aqui estão os links para outros guias relacionados a este tutorial:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.