🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

O que é o Apache? Um Guia Simples sobre Servidores Web e Como Funcionam

Quer criar um site? Mas só de ouvir palavras como "Servidor Web" e "Apache" já se sente intimidado? Não se preocupe! Neste artigo, vamos explicar os fundamentos dos servidores web e o mecanismo do Apache de uma forma fácil de entender, mesmo para iniciantes em desenvolvimento web, quase como se estivéssemos a usar ilustrações. Vamos simplificar o jargão técnico para que possa ler com confiança.

E o maior objetivo deste artigo é proporcionar a você a experiência de "Ah, então é assim que se publica algo na web!". Preparamos muitos exemplos de código que pode copiar e colar, então vamos pôr as mãos na massa e dominar juntos o funcionamento dos servidores web!


Afinal, o que é um Servidor Web?

Primeiro, vamos ver o papel de um servidor web. Em poucas palavras, é "um computador que fornece os dados de uma página da web em resposta aos nossos pedidos".

Pode ser mais fácil de entender com uma analogia de restaurante:

Quando digita um URL no seu navegador ou clica num link, o navegador envia um pedido (request) ao servidor web, a dizer "Mostra-me esta página!". O servidor web recebe esse pedido e envia os ficheiros HTML, imagens e outros dados da página web de volta para o navegador como uma resposta (response). É graças a esta troca que conseguimos navegar em websites.


O que é o "HTTP", a Regra de Comunicação?

Para que um servidor web e um navegador possam conversar (comunicar), eles precisam de uma linguagem comum que ambos entendam, ou seja, um conjunto de "regras". Esse conjunto de regras é o HTTP (HyperText Transfer Protocol).

Na nossa analogia do restaurante, isto seria como ter uma forma estabelecida de pedir, como dizer "Eu gostaria do bife", e uma forma estabelecida de ser servido, como "Aqui está o seu bife". Todos os dados são trocados de acordo com este protocolo HTTP.

O `http://` ou `https://` que vê na barra de endereços do seu navegador é uma declaração de que a comunicação será feita usando este protocolo. (O 's' em `https` significa Secure (Seguro), indicando que a comunicação é encriptada para maior segurança).


O Assunto Principal! O que é o Apache?

Agora, vamos ao tópico principal: o Apache. O Apache é um dos softwares de servidor web mais utilizados no mundo. O seu nome oficial é "Apache HTTP Server".

Pense no Apache como o software que de fato desempenha o papel do "empregado de mesa" da nossa analogia, mas num computador. Ao instalar o Apache num computador, pode fazer com que esse computador funcione como um servidor web.

As Vantagens do Apache


[Na Prática] Vamos Publicar uma Página Web com o Apache!

Chega de teoria! Vamos pôr as mãos na massa e experimentar publicar uma página web. Para esta parte, vamos assumir que já tem o Apache instalado no seu computador. (Vamos cobrir como instalá-lo no próximo artigo!)

Passo 1: Criar o ficheiro HTML para publicar

Primeiro, vamos criar um ficheiro HTML que contém o conteúdo da nossa página web. É uma página muito simples que apenas diz "Olá, mundo!". Guarde este ficheiro com o nome `index.html`.

<!DOCTYPE html>
<html lang="pt">
<head>
    <meta charset="UTF-8">
    <title>A Minha Primeira Página Apache</title>
</head>
<body>
    <h1>Olá, mundo!</h1>
    <p>Esta página está a ser servida pelo Apache.</p>
</body>
</html>

Passo 2: Verificar e Editar o Ficheiro de Configuração do Apache

A seguir, precisamos de dizer ao Apache onde encontrar os ficheiros da página web que queremos publicar. Isso é feito num ficheiro de configuração chamado `httpd.conf`.

Uma configuração particularmente importante neste ficheiro é o `DocumentRoot`. É aqui que especifica o caminho para o diretório (pasta) onde irá colocar os seus ficheiros prontos para a web, como o `index.html` que acabámos de criar.

Por exemplo, se o `DocumentRoot` estiver definido como `/usr/local/apache2/htdocs`, você colocaria o seu ficheiro `index.html` dentro do diretório `/usr/local/apache2/htdocs` para torná-lo acessível a partir de um navegador web.

Abaixo está um trecho de um ficheiro `httpd.conf` de exemplo. Terá de adaptar o caminho para o seu próprio ambiente. ※Este código é para fins explicativos. Não altere o seu ficheiro de configuração sem entender o que está a fazer!

# Listen: O número da porta em que o servidor irá escutar por pedidos.
# Tipicamente, o HTTP usa a porta 80.
Listen 80

# DocumentRoot: O caminho para o diretório onde irá colocar o conteúdo web.
# Coloque os seus ficheiros HTML, etc., neste diretório.
# (No Windows, pode ser algo como "C:/Apache24/htdocs")
DocumentRoot "/usr/local/apache2/htdocs"

# Configurações para o diretório especificado no DocumentRoot
<Directory "/usr/local/apache2/htdocs">
    # Permitir que as configurações sejam sobrescritas por ficheiros .htaccess.
    AllowOverride All
    # Permitir todos os pedidos.
    Require all granted
</Directory>

[IMPORTANTE] Depois de editar o ficheiro `httpd.conf`, deve sempre reiniciar o Apache para que as alterações tenham efeito.


[Exemplos Avançados] Domine o Apache com o `.htaccess`

Uma das funcionalidades mais poderosas do Apache é o ficheiro `.htaccess`. Embora as configurações globais do servidor sejam normalmente tratadas no `httpd.conf`, o ficheiro `.htaccess` é útil quando quer adicionar regras que se aplicam apenas dentro de um diretório específico.

Ao gerir um website, terá frequentemente necessidades como "quero redirecionar todos os URLs sem www para a versão com www" ou "quero proteger uma página específica com senha". É aqui que o `.htaccess` brilha.

Exemplo 1: Normalizar URLs (forçar 'www')

Do ponto de vista de SEO (Otimização para Motores de Busca), não é ideal ter URLs divididos como `example.com` e `www.example.com`. Esta configuração redireciona todo o tráfego para a versão `www.example.com`. Crie um ficheiro `.htaccess` com o seguinte conteúdo e coloque-o no seu `DocumentRoot`.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

Exemplo 2: Proteger um Diretório com Senha (Autenticação Básica)

Use a Autenticação Básica quando quiser restringir o acesso a um determinado diretório, como uma área apenas para membros. Primeiro, coloque um ficheiro `.htaccess` com o seguinte conteúdo no diretório que quer proteger.

AuthType Basic
AuthName "Área Secreta"
AuthUserFile /caminho/para/.htpasswd
Require valid-user

A seguir, crie um ficheiro `.htpasswd` que contenha os nomes de utilizador e senhas dos utilizadores autorizados. Certifique-se de substituir `/caminho/para/` por um caminho apropriado no seu servidor. É crucial colocar este ficheiro num local que não seja acessível pela web.

# Um exemplo para o nome de utilizador "meuuser" com uma senha encriptada
meuuser:$apr1$abcdefg$hijklmnopqrstuvwxyz.

※ O ficheiro `.htpasswd` é tipicamente gerado usando uma ferramenta de linha de comando especial ou um gerador baseado na web.


Exemplo 3: Negar Acesso de Endereços IP Específicos

Esta configuração serve para bloquear tráfego indesejado de endereços IP específicos. Você especifica os endereços IP que quer bloquear.

Require all granted
Require not ip 192.168.1.100
Require not ip 10.0.0.0/8

Pontos de Atenção

O Apache é muito poderoso, mas se for configurado incorretamente, pode criar riscos de segurança ou fazer com que o seu site deixe de funcionar.


Conclusão

Neste artigo, cobrimos tudo, desde o funcionamento básico de um servidor web até ao papel do popular software de servidor, o Apache, incluindo passos práticos para publicar uma página web simples e alguns exemplos avançados.

Pode parecer difícil no início, mas a emoção de ver o seu ficheiro `index.html` ser exibido num navegador é o primeiro passo para experimentar a alegria do desenvolvimento web. O Apache é um parceiro confiável que ajuda a entregar os websites que cria a pessoas de todo o mundo. Esperamos que este artigo sirva como ponto de partida para aprofundar os seus conhecimentos sobre servidores web и aplicá-los nos seus projetos criativos.

Como próximo passo, vamos tentar instalar o Apache no seu próprio computador! O artigo seguinte fornece instruções de instalação detalhadas para diferentes sistemas operativos.

2. Como Instalar o Apache no Windows / macOS / Linux (por SO)