⬅ Voltar ao Dashboard 3º Bimestre — Serviços de Rede

🌐 Servidor Web Apache

Aula 4 — Hospede sites com o Apache no Ubuntu: instale o servidor, crie Virtual Hosts, configure páginas HTML e gerencie múltiplos sites em um único servidor

📚 O que é um Servidor Web?

Um servidor web é um software que recebe requisições HTTP de navegadores e responde com páginas HTML, imagens e outros arquivos. O Apache é o mais popular do mundo, usado por mais de 30% de todos os sites da internet.

💡 Analogia da biblioteca: a biblioteca é o servidor web, os livros são as páginas HTML, o leitor é o navegador e o pedido é a requisição HTTP. Você pede um livro pelo título (URL) e a biblioteca busca e entrega!

Como funciona uma requisição

1

Usuário digita a URL no navegador

2

Navegador faz uma requisição HTTP para o servidor

3

Apache localiza os arquivos do site

4

Retorna o HTML, CSS e JS para o navegador

5

Navegador renderiza e exibe a página

Por que Apache?

🏢 O que são Virtual Hosts?

Virtual Hosts permitem hospedar vários sites em um único servidor Apache. Cada site tem sua própria configuração, pasta de arquivos e domínio — tudo no mesmo servidor físico.

💡 Analogia do prédio: o servidor é o prédio, e cada Virtual Host é um apartamento. Todos compartilham o mesmo endereço (IP), mas cada um tem sua própria entrada (domínio) e interior (arquivos).

Vantagens

Estrutura de pastas

organização dos sites
/var/www/ ├── site1.com/ │ └── public_html/ │ └── index.html ├── site2.com/ │ └── public_html/ │ └── index.html └── informatica.joaocamara/ └── public_html/ └── index.html

📁 Arquivos e Diretórios Importantes

O Apache organiza sua configuração em diretórios bem definidos. Conhecer cada um é essencial para criar e gerenciar sites.

Diretórios principais

CaminhoFunção
/etc/apache2/Arquivos de configuração do servidor
/var/www/Raiz dos sites (DocumentRoot)
/var/log/apache2/Logs de acesso e erros

Arquivos de configuração

ArquivoFunção
apache2.confConfiguração principal do servidor
ports.confPortas em que o Apache escuta
sites-available/Arquivos .conf de sites disponíveis
sites-enabled/Links simbólicos dos sites ativos

Fluxo de trabalho

1

Criar arquivo .conf em sites-available/

2

Ativar com a2ensite (cria link em sites-enabled/)

3

Reiniciar o Apache com systemctl restart apache2

4

Site funcionando!

a2ensite Ativar site Habilita Virtual Host
a2dissite Desativar site Desabilita Virtual Host
a2enmod Ativar módulo Habilita extensão
a2dismod Desativar módulo Desabilita extensão

📦 1 Instalar o Apache

A instalação é simples com o apt. Diferente de outros servidores, o Apache já inicia automaticamente após a instalação com uma página padrão de boas-vindas.

instalando apache2
# Atualizar repositórios $ sudo apt-get update # Instalar o Apache $ sudo apt-get install apache2 # Verificar versão instalada $ apache2 -v Server version: Apache/2.4.x (Ubuntu) Server built: ...

✅ Após a instalação, acesse http://localhost ou http://IP-do-servidor no navegador para ver a página padrão “Apache2 Ubuntu Default Page”. Isso confirma que o servidor está funcionando.

📂 2 Criar Estrutura de Pastas

Crie o diretório do site dentro de /var/www/, ajuste o proprietário e as permissões. Usaremos o domínio informatica.joaocamara como exemplo.

criar pastas e permissões
# Criar o diretório do site (com subpastas) $ sudo mkdir -p /var/www/informatica.joaocamara/public_html # Tornar o usuário atual o dono da pasta $ sudo chown -R $USER:$USER /var/www/informatica.joaocamara/public_html # Ajustar permissões do /var/www $ sudo chmod -R 755 /var/www

Entendendo os comandos

ComandoSignificado
mkdir -pCria pasta e subpastas de uma vez
chown -R $USER:$USERTorna o usuário atual o dono recursivamente
chmod 755Dono: ler+escrever+executar; outros: ler+executar

🖥️ 3 Criar a Página HTML

Crie o arquivo index.html dentro da pasta public_html do site. Este será o arquivo exibido quando alguém acessar o domínio.

criar index.html
$ sudo vim /var/www/informatica.joaocamara/public_html/index.html

Conteúdo do arquivo

index.html
<html> <head> <title>Bem vindo ao informatica.joaocamara!</title> </head> <body bgcolor="gray"> <h1>Sucesso! O site informatica.joaocamara está no ar!</h1> </body> </html>

Tags HTML básicas

TagFunção
<html>Início e fim do documento HTML
<head>Metadados (não visível na página)
<title>Título que aparece na aba do navegador
<body>Conteúdo visível da página
<h1>Título principal (maior destaque)

⚙️ 4 Criar o Virtual Host

Crie um arquivo .conf em sites-available/ descrevendo como o Apache deve servir o site. Este arquivo é o “cadastro” do site no servidor.

criar arquivo de configuração
$ sudo vim /etc/apache2/sites-available/informatica.joaocamara.conf

Conteúdo do Virtual Host

informatica.joaocamara.conf
<VirtualHost *:80> ServerAdmin admin@informatica.joaocamara ServerName informatica.joaocamara ServerAlias www.informatica.joaocamara DocumentRoot /var/www/informatica.joaocamara/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

Diretivas explicadas

DiretivaFunção
*:80Escuta em qualquer IP na porta 80 (HTTP)
ServerAdminE-mail do administrador do site
ServerNameDomínio principal do site
ServerAliasDomínio alternativo (ex.: versão com www)
DocumentRootPasta onde ficam os arquivos HTML do site
ErrorLogArquivo de log de erros
CustomLogArquivo de log de acessos

▶️ 5 Ativar o Site

Com o arquivo .conf criado, ative o site com a2ensite, desative o site padrão (opcional) e reinicie o Apache para aplicar.

ativar e reiniciar
# Ativar nosso site $ sudo a2ensite informatica.joaocamara.conf Enabling site informatica.joaocamara. To activate the new configuration, run: systemctl reload apache2 # Desativar o site padrão (opcional) $ sudo a2dissite 000-default.conf # Verificar sintaxe antes de reiniciar $ sudo apache2ctl -t Syntax OK # Reiniciar o Apache $ sudo systemctl restart apache2

Testar no navegador

Sempre teste com apache2ctl -t antes de reiniciar. Se aparecer “Syntax OK”, a configuração está correta. Um erro de sintaxe pode impedir o Apache de iniciar.

🔢 Hospedando vários Sites — Portas Alternativas

Para hospedar um segundo site no mesmo servidor sem DNS, use uma porta alternativa. Adicione a diretiva Listen no .conf do novo site.

segundo site na porta 700
# Criar pasta e index.html do segundo site $ sudo mkdir -p /var/www/eletro.joaocamara/public_html # Arquivo .conf com porta alternativa $ sudo vim /etc/apache2/sites-available/eletro.joaocamara.conf

Conteúdo do .conf com porta 700

eletro.joaocamara.conf
Listen 700 <VirtualHost *:700> ServerAdmin admin@eletro.joaocamara ServerName eletro.joaocamara DocumentRoot /var/www/eletro.joaocamara/public_html </VirtualHost>
ativar e acessar
$ sudo a2ensite eletro.joaocamara.conf $ sudo systemctl restart apache2 # Acessar com porta alternativa http://192.168.0.1:700

🔧 Comandos Úteis

Referência rápida dos principais comandos para gerenciar o Apache no dia a dia.

ComandoFunção
a2ensite site.confAtivar um Virtual Host
a2dissite site.confDesativar um Virtual Host
apache2ctl -tTestar sintaxe da configuração
apache2ctl -SListar todos os Virtual Hosts ativos
systemctl status apache2Ver status do serviço
tail -f /var/log/apache2/error.logAcompanhar erros em tempo real

Controle do serviço

systemctl
$ sudo systemctl start apache2 # iniciar $ sudo systemctl stop apache2 # parar $ sudo systemctl restart apache2 # reiniciar (aplica mudanças) $ sudo systemctl reload apache2 # recarregar config sem parar $ sudo systemctl status apache2 # ver status atual

🎯 Exercício — Arraste e Conecte

Relacione cada elemento do Apache à sua descrição correta.

Descrição
Pasta raiz onde ficam os arquivos dos sites
Comando para ativar um Virtual Host
Porta padrão do protocolo HTTP
Diretiva que define o diretório dos arquivos HTML
Comando para verificar erros de sintaxe na configuração
Elemento
/var/www/
a2ensite
80
DocumentRoot
apache2ctl -t

🛠️ Atividade Prática — Configurando o Servidor Apache

⏱ ~40 min 💻 Ubuntu Server / VM 📸 Tirar screenshot da saída
1
Instalar e criar estrutura
Instale o Apache com sudo apt-get install apache2. Crie a pasta /var/www/seu-dominio/public_html com mkdir -p. Ajuste o proprietário com chown -R $USER:$USER e as permissões com chmod -R 755. Tire screenshot.
2
Criar página HTML e Virtual Host
Crie o arquivo index.html dentro de public_html com um conteúdo HTML simples. Crie o arquivo .conf em /etc/apache2/sites-available/ com as diretivas ServerName, DocumentRoot, ErrorLog e CustomLog.
3
Ativar e reiniciar
Ative o site com sudo a2ensite seu-dominio.conf. Desative o padrão com a2dissite 000-default.conf. Valide com apache2ctl -t (deve aparecer “Syntax OK”). Reinicie com systemctl restart apache2. Tire screenshot do status.
4
Testar e criar segundo site
Acesse o site pelo IP no navegador e tire screenshot da página exibida. Como desafio extra, crie um segundo Virtual Host em uma porta alternativa (ex.: 700) com um segundo index.html diferente e acesse por http://IP:700.
📌 Para refletir: o Apache é a base de boa parte da infraestrutura web do mundo. Entender Virtual Hosts, a diretiva DocumentRoot e o fluxo sites-available → a2ensite → sites-enabled é essencial para qualquer administrador de sistemas que precise hospedar aplicações web.

❓ Verifique seu Conhecimento

Qual diretório contém os arquivos de configuração de Virtual Hosts no Apache (Ubuntu)?

A/etc/apache2/conf.d/
B/etc/apache2/sites-available/
C/var/www/apache2/vhosts/
D/usr/apache2/vhosts/
✓ No Ubuntu, Virtual Hosts ficam em /etc/apache2/sites-available/. Use a2ensite para ativá-los.

Qual comando ativa um Virtual Host no Apache no Ubuntu?

Aapache2ctl enable-site meusite
Bservice apache2 enable meusite
Ca2ensite meusite.conf
Dapache2 --enable-vhost meusite
a2ensite cria um link simbólico em sites-enabled/. Após isso, systemctl reload apache2.

Qual porta padrão usa o protocolo HTTP?

A80
B443
C8080
D22
✓ HTTP usa a porta 80. HTTPS usa 443. A porta 8080 é comum para servidores de desenvolvimento.

Onde ficam os arquivos dos sites por padrão no Apache (Ubuntu)?

A/srv/www/
B/usr/share/apache2/
C/etc/apache2/html/
D/var/www/html/
✓ O DocumentRoot padrão do Apache no Ubuntu é /var/www/html/. Cada Virtual Host pode ter seu próprio diretório.