Posted on: November 22, 2021 07:25 PM
Posted by: Renato
Categories: ubuntu apache programming webdev PHP
Views: 1354
# Configurar os hosts virtuais do Apache no Ubuntu 20.04
## Resumo:
O Servidor HTTP Apache ou Servidor Apache ou HTTP Daemon Apache ou somente Apache, é o servidor web livre criado em 1995 por Rob McCool. O servidor Web do Apache é um método popular para atender sites na Internet.
Os servidores são as máquinas responsáveis por fornecer as informações dos sites e serviços que acessamos pela internet, ou seja, são os computadores e sistemas que armazenam as informações acessadas sempre que o usuário faz uma requisição por meio de navegadores e serviços online.
A internet, como a conhecemos hoje, começou com sua “conquista” global nos anos 90. O protocolo “Web” inteiro pode ser resumido como uma solicitação de um visitante por um documento a partir de um endereço na web, com DNS e o sistema IP encaminhando tal solicitação para o computador correto. Este computador, que hospeda a página web solicitada, a “servirá” ao visitante.
Softwares como Nginx e Apache atendem solicitações, as analisam e entregam os documentos correspondentes para que sejam visualizados no navegador do visitante. Páginas web são, essencialmente, documentos HTML.
# Alguns fatos rápidos:
Apache foi lançado primeiro, em 1995, sendo o Nginx lançado em 2004.
Ambos são usados por grandes empresas da Fortune 500 ao redor do mundo.
A fatia de mercado do Nginx tem crescido constantemente ao longo dos anos.
Em alguns casos, o Nginx tem uma vantagem competitiva em termos de desempenho.
## O que é Servidor Apache?
Apache é um software que tem código aberto e distribuição gratuita (open-source), mesmo sendo utilizado inclusive pelo meio corporativo.
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".
Você precisará ter o Apache instalado para configurar. Se ainda não tiver feito isso, é possível instalar o Apache no seu servidor através do pacote da ferramenta apt do Ubuntu caso você esteje usando o Ubuntu ou alguma variavel dele, caso seja outro sistema procure como instalar, e creio que o restante vai ser meio parecido.
sudo apt install apache2
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 artigo, mas você deve substituir seus próprios domínios ou valores, enquanto estiver seguindo.
## 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/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/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:
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:
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 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:
Abra o novo arquivo em seu editor com privilégios root:
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.
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:
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:
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 [email protected]
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:
Abra o novo arquivo com privilégios root em seu editor:
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 [email protected]
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 test.com.conf
Em seguida, desabilite o site padrão definido em 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 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
http://test.com
- https://blog.renatolucena.net/search?q=apache
- https://blog.renatolucena.net/post/ubuntu-20-04-varios-sites-num-servidor-apache
- https://www.tecmundo.com.br/produto/214913-funciona-o-servidor-apache.htm
- https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-18-04-pt
Donate to Site
Renato
Developer