One place for hosting & domains

      virtuais

      Como configurar os hosts virtuais do Apache no Ubuntu 18.04


      Introdução

      O servidor Web do Apache é um método popular para atender sites na Internet. Em 2019, as estimativas apontavam que o método atenderia 29% de todos os sites ativos, oferecendo robustez e flexibilidade aos desenvolvedores. Ao usar o Apache, um administrador pode configurar um servidor para hospedar vários domínios ou sites fora de uma única interface ou IP, usando um sistema correspondente.

      Cada domínio ou site individual — conhecido como “host virtual” — configurado usando o Apache irá direcionar o visitante para um diretório específico que possui informações daquele site. Isso é feito sem indicar que o mesmo servidor também é o responsável por outros sites. Esse esquema pode ser expandido, sem qualquer limite de software, desde que o seu servidor consiga lidar com a carga. A unidade básica que descreve um site ou domínio individual é chamada de virtual host.

      Neste guia, apresentaremos a você um passo a passo sobre como configurar os hosts virtuais do Apache em um servidor Ubuntu 18.04. Durante esse processo, você aprenderá como atender conteúdos diferentes para visitantes diferentes, dependendo de quais domínios que eles estiverem solicitando.

      Pré-requisitos

      Antes de iniciar este tutorial, você deve criar um usuário não root.

      Você também precisará ter o Apache instalado para trabalhar através desses passos. Se ainda não tiver feito isso, é possível instalar o Apache no seu servidor através do pacote da ferramenta apt:

      • sudo apt update
      • sudo apt install apache2

      Se quiser instruções mais detalhadas, bem como a configuração do firewall, consulte nosso guia sobre Como instalar o servidor Web do Apache no Ubuntu 18.04.

      Para o nosso propósito neste guia, nossa configuração criará um host virtual para o example.com e outro para o test.com. Esses arquivos serão referenciados durante todo o guia, mas você deve substituir seus próprios domínios ou valores, enquanto estiver seguindo o guia.

      Se estiver utilizando a DigitalOcean, você pode aprender como configurar domínios, seguindo a documentação do produto, Como adicionar domínios. Para outros provedores, consulte a documentação relevante dos respectivos produtos. Se você não tiver domínios disponíveis no momento, você poderá usar os valores de teste.

      Mais adiante neste guia, vamos mostrar como editar seu arquivo de hosts locais para testar a configuração, se você estiver usando valores de teste. Isso permitirá que você valide sua configuração a partir do seu computador doméstico, embora seu conteúdo não ficará disponível através do nome de domínio para outros visitantes.

      Passo 1 — Criar a estrutura de diretório

      O primeiro passo que vamos dar será criar uma estrutura de diretório que reterá os dados do site que vamos oferecer aos visitantes.

      Nosso document root (o diretório de nível superior que o Apache examina para encontrar conteúdo para atender) será configurado em diretórios individuais, sob o diretório /var/www. Aqui, criaremos um diretório para ambos os hosts virtuais que planejamos fazer.

      Dentro de cada um desses diretórios, criaremos uma pasta public_html que reterá nossos arquivos reais. Isso nos possibilita uma certa flexibilidade em nossa hospedagem.

      Por exemplo, em relação aos nossos sites, vamos fazer nossos diretórios como segue. Caso esteja usando domínios reais ou valores alternativos, troque o texto destacado por esses.

      • sudo mkdir -p /var/www/example.com/public_html
      • sudo mkdir -p /var/www/test.com/public_html

      As partes em vermelho representam os nomes de domínios que queremos atender a partir do nosso VPS (Servidor virtual privado).

      Passo 2 — Conceder permissões

      Agora, temos a estrutura de diretório para nossos arquivos, mas eles são propriedade do nosso usuário root. Se quisermos que nosso usuário comum consiga modificar os arquivos em nossos diretórios Web, podemos alterar a propriedade, fazendo o seguinte:

      • sudo chown -R $USER:$USER /var/www/example.com/public_html
      • sudo chown -R $USER:$USER /var/www/test.com/public_html

      A variável $USER utilizará o valor do usuário que estiver conectado no momento, assim que pressionar ENTER. Ao fazer isso, nosso usuário comum será o proprietário dos subdiretórios public_html, onde iremos armazenar nosso conteúdo.

      Também devemos modificar as permissões para garantir o acesso de leitura ao diretório Web geral e a todos os arquivos e pastas que ele contenha, para que páginas possam ser atendidas corretamente:

      • sudo chmod -R 755 /var/www

      Agora, seu servidor Web deve ter as permissões necessárias para oferecer conteúdo e seu usuário deve conseguir criar conteúdo nas pastas necessárias.

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

      Agora, temos a estrutura de nosso diretório está em funcionamento. Vamos criar um conteúdo para oferecer.

      A título de demonstração, vamos criar uma página index.html para cada site.

      Vamos começar com o example.com. Podemos abrir um arquivo index.html em um editor de texto. Neste caso, usaremos o nano:

      • nano /var/www/example.com/public_html/index.html

      Dentro desse arquivo, crie um documento HTML que indique o site ao qual ele está conectado, como o seguinte:

      /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 (no nano, pressione CTRL + X e, depois, Y e, finalmente, ENTER) quando terminar.

      Podemos copiar esse arquivo para usar como base para nosso segundo site, digitando:

      • cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html

      Na sequência, podemos abrir o arquivo e modificar as informações relevantes:

      • nano /var/www/test.com/public_html/index.html

      /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. Agora, você tem as páginas necessárias para testar a configuração do host virtual.

      Passo 4 — Criar novos arquivos do host virtual

      Os arquivos do host virtual são os arquivos que especificam a configuração real dos nossos hosts virtuais e determinam o modo como o servidor Web Apache responderá às solicitações de vários domínios.

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

      Começaremos com um domínio, configurando-o e copiando-o para nosso segundo domínio e, em seguida, faremos alguns outros ajustes necessários. A configuração padrão do Ubuntu exige que cada arquivo de host virtual termine em .conf.

      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 em seu editor com privilégios root:

      • sudo nano /etc/apache2/sites-available/example.com.conf

      Com os comentários removidos, o arquivo ficará parecido com este:

      /etc/apache2/sites-available/example.com.conf

      <VirtualHost *:80>
          ServerAdmin webmaster@localhost
          DocumentRoot /var/www/html
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      

      Dentro desse arquivo, vamos personalizar os itens para nosso primeiro domínio e adicionar algumas diretivas. Esta seção do host virtual corresponde a quaisquer pedidos que forem feitos na porta 80, que é a porta padrão do HTTP.

      Primeiro, precisamos alterar a diretiva ServerAdmin para um e-mail que o administrador do site possa receber e-mails.

      ServerAdmin admin@example.com
      

      Depois disso, precisamos adicionar duas diretivas. A primeira, chamada ServerName, estabelece o domínio base que deve corresponder à definição desse host virtual. Esse provavelmente será o seu domínio. A segunda, chamada de ServerAlias, define os outros nomes que devem corresponder como se fossem o nome base. Isso é útil para os hosts correspondentes que você definiu, como www:

      ServerName example.com
      ServerAlias www.example.com
      

      A única outra coisa que precisamos alterar em nosso arquivo de host virtual é a localização do diretório base desse domínio. Já criamos o diretório que precisamos, então precisamos apenas alterar a diretiva DocumentRoot para refletir o diretório que criamos:

      DocumentRoot /var/www/example.com/public_html
      

      Quando estiver concluído, nosso arquivo de host virtual deverá ter a seguinte aparência:

      /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

      Com o nosso primeiro arquivo de host virtual estabelecido, agora podemos criar nosso segundo host virtual, copiando aquele arquivo e ajustando-o, 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 root em seu editor:

      • sudo nano /etc/apache2/sites-available/test.com.conf

      Agora, você precisará modificar todas as informações para referenciar seu segundo domínio. Quando tiver terminado, ele deverá ter a seguinte aparência:

      /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

      Agora que criamos os arquivos de host virtual, precisamos habilitá-los. O Apache inclui algumas ferramentas que nos permitem fazer isso.

      Vamos usar a ferramenta a2ensite para habilitar cada um dos nossos sites. Caso queira ler mais a respeito deste script, consulte a documentação a2ensite.

      • 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 tiver terminado, você precisará reiniciar o Apache para as alterações entrem em vigor e usar o systemctl status para verificar o sucesso da reinicialização.

      • sudo systemctl restart apache2
      • sudo systemctl status apache2

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

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

      Se você não usou nomes de domínios reais – de sua propriedade – para testar esse procedimento mas, em vez disso, usou alguns domínios de exemplo, pelo menos você conseguirá testar a funcionalidade desse processo, alterando temporariamente o arquivo hosts em seu computador local.

      Isso interceptará quaisquer pedidos para os domínios que você configurou e irá apontá-los para seu servidor VPS, da mesma forma que o sistema DNS faria caso estivesse usando domínios registrados. Entretanto, isso somente funcionará a partir do seu computador local e somente para fins de teste.

      Certifique-se de que esteja operando em seu computador local para esses passos e não em seu servidor VPS. Você precisará saber a senha administrativa do computador ou, então, ser membro do grupo administrativo.

      Caso esteja em um computador Mac ou Linux, edite seu arquivo local com privilégios administrativos, digitando:

      Caso esteja em uma máquina em Windows, você pode encontrar as instruções sobre como alterar seu arquivo hosts aqui.

      Os detalhes que você precisará adicionar são o endereço IP público do seu servidor, seguido do domínio que quiser usar para acessar aquele servidor.

      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:

      /etc/hosts

      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. Isso é o que queremos, caso não sejamos os proprietários desses domínios, para podermos testar nossos hosts virtuais.

      Passo 7 — Testar seus resultados

      Agora que você tem seus hosts virtuais configurados, poderá testar suas configurações, acessando os domínios que configurou em seu navegador Web:

      http://example.com
      

      Você deve ver uma página que se parece com esta:

      Apache virtual host example

      Também é possível visitar sua segunda página e ver o arquivo criado para seu segundo site.

      http://test.com
      

      Teste do host virtual do Apache

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

      Caso tenha ajustado o arquivo hosts do seu computador doméstico, talvez queira excluir as linhas que adicionou, agora que verificou que sua configuração funciona. Isso impedirá que seu arquivo hosts seja preenchido com entradas que não são mais necessárias.

      Caso precise acessar isso por longo prazo, considere adicionar um nome de domínio para cada site que precisar e configurá-lo para apontar para seu servidor.

      Conclusão

      Se você acompanhou este guia, agora deverá ter um único servidor manipulando dois nomes de domínio separados. Você pode expandir esse processo, seguindo os passos que definimos acima para fazer hosts virtuais adicionais.

      Não há uma limitação do software quanto ao número de nomes de domínios que o Apache consegue gerenciar. Assim, fique à vontade para criar tantos domínios quantos o seu servidor conseguir manipular.



      Source link

      Como configurar os hosts virtuais do Apache no Ubuntu 18.04 [Guia de início rápido]


      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

      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:

      /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

      /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.

      /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.

      /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:

      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:

      /etc/hosts

      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.

      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://example.com
      

      Você deve ver uma página como esta:

      Exemplo de host virtual do Apache

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

      http://test.com
      

      Teste do host virtual do Apache

      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.

      Tutoriais relacionados

      Aqui estão os links para outros guias relacionados a este tutorial:



      Source link