↓Salta al contenuto principale
Alemasone

Como instalar e configurar o Apache no Ubuntu e Windows

Aprende a instalar o servidor web Apache no Ubuntu e Windows, configurar virtual hosts, mod_rewrite e firewall.

10 min de leitura Atualizado a
Terminal com os comandos de instalação do Apache ao lado da página de boas-vindas do servidor
Nesta página
No Ubuntu o Apache instala-se com um comando e arranca sozinho. No Windows, por outro lado, tens de o descarregar, descompactar e registar como serviço manualmente, porque a Apache Software Foundation não distribui um instalador. A versão estável atual é a 2.4.68, lançada a 8 de junho de 2026.

Apache HTTP Server existe desde 1995 e continua a ser um dos web servers mais utilizados: recebe as requisições do browser e devolve as páginas, sozinho ou em conjunto com o PHP e uma base de dados. Vamos ver a instalação nos dois sistemas e depois os detalhes que vais precisar logo de seguida: firewall, hosts virtuais e módulos.

Instalar Apache no Ubuntu #

Os comandos funcionam no Ubuntu 26.04 LTS, a última versão com suporte de longo prazo (LTS), tal como nas versões LTS anteriores ainda suportadas, a 24.04 e a 22.04. São necessárias permissões de administrador.

  1. Atualiza a lista de pacotes e instala o servidor:

    sudo apt update
    sudo apt install apache2
    
  2. Verifica se o serviço arrancou:

    sudo systemctl status apache2
    

    Se leres active (running) está tudo em ordem. Caso contrário, arranca-o com sudo systemctl start apache2.

  3. Abre o browser em http://localhost: deve aparecer a página predefinida «Apache2 Default Page». Se o servidor for outra máquina, vais precisar do endereço IP dela, que obténs com hostname -I (normalmente é o primeiro da lista), para escreveres no browser como http://indirizzo-ip.

    Página «Apache2 Ubuntu Default Page» aberta no browser após a instalação
    Se vires esta página, o servidor está instalado e em escuta

Os comandos que vais usar com mais frequência daqui para a frente são quatro:

sudo systemctl start apache2      # avvia
sudo systemctl stop apache2       # ferma
sudo systemctl restart apache2    # riavvia
sudo systemctl reload apache2     # ricarica la configurazione senza interrompere le connessioni

Após uma alteração na configuração, usa reload: as requisições em curso não serão interrompidas.

O Apache arranca sozinho sempre que ligas o computador. Se não quiseres assim, desativa-o com sudo systemctl disable apache2 e reativa-o com sudo systemctl enable apache2.

A firewall UFW #

No Ubuntu, a firewall chama-se UFW e tem de ser instruída sobre quais as portas que deve deixar abertas. O Apache regista automaticamente três perfis:

sudo ufw app list

A lista mostra Apache (apenas porta 80), Apache Secure (apenas 443) e Apache Full (ambas). Eu abro diretamente a Apache Full, porque mais cedo ou mais tarde vais adicionar o certificado HTTPS; se por agora só precisares de HTTP, usa 'Apache':

sudo ufw allow 'Apache Full'
sudo ufw enable
sudo ufw status
Atenção ao SSH. Se estiveres a trabalhar num servidor remoto via SSH, autoriza a ligação SSH antes de ativares a firewall, com sudo ufw allow OpenSSH. Ativar o UFW sem essa regra fecha a porta pela qual estás ligado e bloqueia-te o acesso ao servidor.

Onde estão os ficheiros #

CaminhoConteúdo
/var/www/htmlOs ficheiros do site predefinido
/etc/apache2/apache2.confConfiguração principal
/etc/apache2/ports.confAs portas em que o Apache fica à escuta (80, e 443 com SSL)
/etc/apache2/sites-available/Hosts virtuais disponíveis
/etc/apache2/sites-enabled/Hosts virtuais ativos (ligações aos anteriores)
/var/log/apache2/access.logLog de acessos
/var/log/apache2/error.logLog de erros: o primeiro sítio onde deves olhar quando algo corre mal

Instalar Apache no Windows #

Para Windows, o projeto distribui apenas o código-fonte e remete para compilações feitas por terceiros. A mais utilizada e atualizada é a da Apache Lounge, listada na página de download oficial. O Apache Haus, que encontras em muitos tutoriais, está desatualizado desde 2022: esquece isso.

Só precisas de um ambiente de desenvolvimento? Se quiseres trabalhar localmente com PHP e MySQL, um pacote completo como o Laragon ou WampServer poupa-te todos os passos seguintes. A instalação manual faz sentido quando queres escolher a tua própria versão e configuração, perceber como o servidor funciona ou mantê-lo ligado permanentemente.
  1. Liberta a porta 80. Se tiveres ativado o IIS (o web server da Microsoft incluído nas edições Pro), desativa-o em Ativar ou desativar funcionalidades do Windows, retirando a marca de seleção a Serviços de Informações da Internet. Mais abaixo, encontras como descobrir que outro programa está a ocupar a porta.

  2. Instala o Visual C++ Redistributable exigido pela compilação que escolheste: está indicado na página de download e é a causa mais comum de falhas no arranque.

  3. Descarrega o ficheiro ZIP de 64 bits e extrai a pasta Apache24 para C:\, para obteres C:\Apache24. É o caminho que a configuração predefinida espera encontrar.

  4. Abre o C:\Apache24\conf\httpd.conf com um editor de texto. Se descompactaste noutro local, corrige a variável SRVROOT no topo do ficheiro, que todas as outras diretivas usam como base, sempre utilizando barras normais:

    Define SRVROOT "c:/Apache24"
    

    Já que estás aí, retira o comentário à frente de ServerName e escreve ServerName localhost:80: evitas o aviso AH00558 em cada arranque.

  5. Abre a Linha de Comandos (Prompt de comandos) como administrador e testa a configuração:

    cd C:\Apache24\bin
    httpd.exe -t
    

    A resposta esperada é Syntax OK. Se houver um erro, a mensagem indica o ficheiro e a linha que deves corrigir.

  6. Regista o Apache como um serviço do Windows, para que ele arranque sozinho sempre que ligas o PC:

    httpd.exe -k install
    
  7. Inicia o serviço e verifica em http://localhost:

    httpd.exe -k start
    

Para o gerir mais tarde: httpd.exe -k stop para o parar, httpd.exe -k restart para o reiniciar, httpd.exe -k uninstall para remover o serviço. Também o encontras nos Serviços do Windows (services.msc) com o nome Apache2.4: ao dares um duplo clique, podes escolher se queres que ele arranque automaticamente ou manualmente. Em modo manual, inicias-no com net start Apache2.4 através de uma linha de comandos como administrador.

A instalação também inclui o ApacheMonitor.exe, um pequeno ícone na área de notificação para iniciares e parares o servidor sem teres de abrir a linha de comandos.

Se a porta 80 já estiver ocupada

No Windows, a porta 80 é frequentemente ocupada por outros programas: IIS, Skype em versões mais antigas ou alguns serviços do sistema. Para descobrires quem a está a usar, usa um prompt com privilégios de administrador:

netstat -aon | findstr :80

O último número da linha é o ID do processo, que podes procurar no Gestor de Tarefas, na aba Detalhes. Podes fechar esse programa ou mudar o Apache para outra porta, alterando em httpd.conf:

Listen 8080

Nesse caso, o site responderá em http://localhost:8080.

Mudar os ficheiros do site #

De uma forma geral, o Apache serve os ficheiros de C:\Apache24\htdocs. Se preferires manter os sites noutro disco, por exemplo para simplificar os backups, altera tanto em httpd.conf como em DocumentRoot e no bloco <Directory> que se segue:

DocumentRoot "D:/Siti"
<Directory "D:/Siti">

Depois, coloca um ficheiro index.html na pasta, reinicia o serviço e recarrega http://localhost.

E no macOS? #

O macOS tem uma versão do Apache pré-instalada, mas está desatualizada. É mais fácil instalares uma nova com Homebrew:

brew install httpd
brew services start httpd

Os ficheiros de configuração ficam em /opt/homebrew/etc/httpd/ nos Macs com Apple Silicon e o servidor responde, por defeito, na porta 8080.

Host virtuais: vários sites no mesmo servidor #

Um host virtual diz ao Apache qual a pasta deve servir com base no nome do site solicitado. Vale a pena usá-lo mesmo que tenhas apenas um site, porque manténs a configuração separada da predefinida.

No Ubuntu #

  1. Cria a pasta do site e atribui as permissões:

    sudo mkdir -p /var/www/esempio.test/public_html
    sudo chown -R $USER:$USER /var/www/esempio.test/public_html
    
  2. Cria o ficheiro /etc/apache2/sites-available/esempio.test.conf com este conteúdo:

    <VirtualHost *:80>
        ServerName esempio.test
        ServerAlias www.esempio.test
        DocumentRoot /var/www/esempio.test/public_html
    
        <Directory /var/www/esempio.test/public_html>
            Options -Indexes +FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/esempio.test-error.log
        CustomLog ${APACHE_LOG_DIR}/esempio.test-access.log combined
    </VirtualHost>
    
  3. Ativa o site, desativa o predefinido e recarrega:

    sudo a2ensite esempio.test.conf
    sudo a2dissite 000-default.conf
    sudo apache2ctl configtest
    sudo systemctl reload apache2
    
  4. Para testares localmente, adiciona a linha 127.0.0.1 esempio.test ao ficheiro /etc/hosts.

A diretiva AllowOverride All é a que permite que os ficheiros .htaccess funcionem: sem ela, as regras de reescrita nas subpastas são ignoradas.

No Windows #

O mecanismo é o mesmo, mas os hosts virtuais ficam em conf/extra/httpd-vhosts.conf, que deve ser habilitado removendo o comentário na linha correspondente em httpd.conf:

Include conf/extra/httpd-vhosts.conf

Depois, defines os hosts com a mesma sintaxe vista acima, usando caminhos no estilo Windows (c:/siti/esempio/public_html), e adicionas a correspondência no ficheiro C:\Windows\System32\drivers\etc\hosts, que deve ser aberto com um editor como administrador.

Ativar mod_rewrite e outros módulos #

O mod_rewrite reescreve os endereços: é usado pelos URLs amigáveis do WordPress, pelo roteamento de frameworks PHP e por qualquer redirecionamento escrito num ficheiro .htaccess. Por defeito, está desativado.

No Ubuntu:

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod ssl
sudo systemctl restart apache2

No Windows, deves intervir em httpd.conf, removendo o comentário à frente das linhas dos módulos:

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule headers_module modules/mod_headers.so

Em ambos os casos, o mod_rewrite só funciona se também houver AllowOverride All no bloco <Directory> da pasta do site. Quando as regras não funcionam, geralmente é porque falta precisamente isso.

Para veres a lista de módulos ativos: apache2ctl -M no Ubuntu, httpd.exe -M no Windows.

Quando algo não funciona #

O Apache não arranca. Testa a configuração com apache2ctl configtest ou httpd.exe -t: o erro indica o ficheiro e a linha. No Windows, verifica se instalaste o Visual C++ Redistributable necessário.

Erro 403 Forbidden. Permissões de pasta ou falta da diretiva Require all granted no bloco <Directory>. No Ubuntu, os ficheiros devem ser legíveis pelo utilizador www-data.

As regras de reescrita são ignoradas. Módulo desativado ou AllowOverride configurado para None.

A página predefinida aparece no lugar do site. O host virtual não foi ativado, ou o nome no ficheiro hosts não corresponde ao que está escrito em ServerName.

Em todos os casos, o primeiro sítio a verificar é o log de erros: /var/log/apache2/error.log no Ubuntu, C:\Apache24\logs\error.log no Windows.

Perguntas frequentes #

Qual é melhor, Apache ou Nginx? #

Depende da carga e do que precisas de servir. O Nginx aguenta melhor muitas conexões simultâneas consumindo pouco, sendo o mais usado em sites de alto tráfego. O Apache é mais simples para quem está a começar, aceita a configuração por pasta com os ficheiros .htaccess (o Nginx não) e é o que encontras na maioria das alojamentos partilhados. Frequentemente, usam-se juntos: Nginx à frente e Apache atrás.

Como adiciono suporte para PHP? #

No Ubuntu é apenas um comando: sudo apt install php libapache2-mod-php, seguido de um reinício do serviço. No Windows, o PHP deve ser descarregado à parte na versão «Thread Safe» e ligado ao Apache adicionando as linhas LoadModule e PHPIniDir em httpd.conf, tendo atenção para usar uma compilação a 64 bits como a do Apache.

Preciso de abrir portas no router para ser acessível pela internet? #

Sim, para seres visível externamente tens de fazer o encaminhamento das portas 80 e 443 para o teu computador. Pensa bem antes de o fazeres: um servidor exposto deve estar sempre atualizado e monitorizado. Se precisares apenas de mostrar um site a alguém, um túnel temporário ou um alojamento simples são opções mais seguras.

Como atualizo o Apache no Windows? #

Para o serviço com httpd.exe -k stop e faz uma cópia de httpd.conf, da pasta conf e dos ficheiros do site. Depois, extrai a nova versão por cima da antiga, sem sobrescrever a tua configuração, verifica com httpd.exe -t e reinicia. O serviço registado permanece o mesmo, não precisas de o reinstalar.

Como ativo o HTTPS? #

Num servidor público, o padrão é usar Let’s Encrypt com a ferramenta Certbot, que obtém o certificado e configura o Apache sozinho. Em ambiente local não precisas de uma autoridade de certificação: basta um certificado autofirmado. O browser vai sinalizá-lo como não confiável, mas podes testar o site em HTTPS na mesma.

Qual é a diferença entre restart e reload? #

restart para e reinicia o processo, cortando as conexões em curso. reload faz com que a configuração seja relida, permitindo que as requisições já iniciadas terminem: num servidor em uso, após uma alteração, usa este.

Leia a seguir