Como Instalar o Servidor Web Apache no Ubuntu 22.04

Introdução

O servidor HTTP Apache é o servidor web mais amplamente utilizado no mundo. Ele oferece muitos recursos poderosos, incluindo módulos carregáveis dinamicamente, suporte robusto a mídia e integração extensiva com outro software popular.

Neste guia, você aprenderá como instalar um servidor web Apache no seu servidor Ubuntu 22.04.

Implante suas aplicações do GitHub usando a Plataforma de Aplicativos DigitalOcean. Deixe a DigitalOcean focar em dimensionar sua aplicação.

Pré-requisitos

Antes de começar este guia, você precisará de um servidor Ubuntu 22.04 configurado com um usuário não root com privilégios sudo e um firewall habilitado para bloquear portas não essenciais. Você pode aprender como fazer isso seguindo nosso guia de configuração inicial do servidor para Ubuntu 22.04.

Depois de concluir isso, faça login como seu usuário não root e prossiga para o primeiro passo.

Passo 1 — Instalando o Apache

O Apache está disponível nos repositórios de software padrão do Ubuntu, tornando possível instalá-lo usando ferramentas convencionais de gerenciamento de pacotes.

Comece atualizando o índice de pacotes local para refletir as últimas alterações upstream:

  1. sudo apt update

Em seguida, instale o pacote apache2:

  1. sudo apt install apache2

Após confirmar a instalação, o apt instalará o Apache e todas as dependências necessárias.

Passo 2 — Ajustando o Firewall

Antes de testar o Apache, é necessário modificar as configurações do firewall para permitir o acesso externo às portas web padrão. Se você seguiu as instruções nos pré-requisitos, deverá ter um firewall UFW configurado para restringir o acesso ao seu servidor.

Ao instalar, o Apache se registra no UFW para fornecer alguns perfis de aplicativos que podem ser usados para habilitar ou desabilitar o acesso ao Apache através do firewall.

Liste os perfis de aplicativos ufw executando o seguinte comando:

  1. sudo ufw app list

O resultado será uma lista dos perfis de aplicativos:

Output
Available applications: Apache Apache Full Apache Secure OpenSSH

Conforme indicado pelo resultado, existem três perfis disponíveis para o Apache:

  • Apache: Este perfil abre apenas a porta 80 (tráfego web normal, não criptografado)
  • Apache Completo: Este perfil abre tanto a porta 80 (tráfego web normal, não criptografado) quanto a porta 443 (tráfego criptografado TLS/SSL)
  • Apache Seguro: Este perfil abre apenas a porta 443 (tráfego criptografado TLS/SSL)

É recomendável que você habilite o perfil mais restritivo que ainda permita o tráfego que você configurou. Como ainda não configurou SSL para seu servidor neste guia, você só precisará permitir tráfego na porta 80:

  1. sudo ufw allow 'Apache'

Você pode verificar a mudança verificando o status:

  1. sudo ufw status

A saída fornecerá uma lista de tráfego HTTP permitido:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

Conforme indicado pela saída, o perfil foi ativado para permitir acesso ao servidor web Apache.

Passo 3 — Verificando seu Servidor Web

No final do processo de instalação, o Ubuntu 22.04 inicia o Apache. O servidor web já estará em funcionamento.

Verifique se o serviço está ativo executando o comando para o sistema init systemd:

  1. sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 5089 (apache2) Tasks: 55 (limit: 1119) Memory: 4.8M CPU: 33ms CGroup: /system.slice/apache2.service ├─5089 /usr/sbin/apache2 -k start ├─5091 /usr/sbin/apache2 -k start └─5092 /usr/sbin/apache2 -k start

Conforme confirmado por esta saída, o serviço foi iniciado com sucesso. No entanto, a melhor maneira de testar isso é solicitar uma página do Apache.

Você pode acessar a página inicial padrão do Apache para confirmar se o software está funcionando corretamente através do seu endereço IP. Se você não sabe o endereço IP do seu servidor, pode obtê-lo de algumas maneiras diferentes a partir da linha de comando.

Tente escrever o seguinte no prompt de comando do seu servidor:

  1. hostname -I

Você receberá alguns endereços separados por espaços. Você pode tentar cada um deles no seu navegador da web para determinar se funcionam.

Outra opção é usar a ferramenta gratuita icanhazip.com. Este é um site que, ao ser acessado, retorna o endereço IP público da sua máquina conforme lido de outro local na internet:

  1. curl -4 icanhazip.com

Quando tiver o endereço IP do seu servidor, insira-o na barra de endereços do seu navegador:

http://your_server_ip

Você verá a página web padrão do Apache do Ubuntu 22.04 como na seguinte:

Esta página indica que o Apache está funcionando corretamente. Também inclui algumas informações básicas sobre arquivos e locais de diretórios importantes do Apache.

Passo 4 — Gerenciando o Processo do Apache

Agora que você tem o seu servidor web funcionando, vamos revisar alguns comandos básicos de gerenciamento usando systemctl.

Para parar o seu servidor web, execute:

  1. sudo systemctl stop apache2

Para iniciar o servidor web quando estiver parado, execute:

  1. sudo systemctl start apache2

Para parar e então iniciar o serviço novamente, execute:

  1. sudo systemctl restart apache2

Se estiver apenas a fazer alterações de configuração, o Apache frequentemente pode recarregar sem perder conexões. Para fazer isso, utilize o seguinte comando:

  1. sudo systemctl reload apache2

Por padrão, o Apache está configurado para iniciar automaticamente quando o servidor é iniciado. Se não for isso que pretende, desative este comportamento executando:

  1. sudo systemctl disable apache2

Para reativar o serviço para iniciar na inicialização, execute:

  1. sudo systemctl enable apache2

O Apache agora iniciará automaticamente quando o servidor for reiniciado.

Ao usar o servidor web Apache, pode usar virtual hosts (semelhantes a blocos de servidor no Nginx) para encapsular detalhes de configuração e hospedar mais de um domínio a partir de um único servidor. Vamos configurar um domínio chamado your_domain, mas deve substituir isso pelo seu próprio nome de domínio.

Info: Se estiver configurando um nome de domínio com a DigitalOcean, consulte a nossa Documentação de Rede.

O Apache no Ubuntu 22.04 tem um bloco de servidor ativado por padrão que está configurado para servir documentos a partir do diretório /var/www/html. Embora isso funcione bem para um único site, pode se tornar complicado se você estiver hospedando vários sites. Em vez de modificar /var/www/html, crie uma estrutura de diretórios dentro de /var/www para um site sua_domínio, deixando /var/www/html no lugar como o diretório padrão a ser servido se uma solicitação do cliente não corresponder a nenhum outro site.

Crie o diretório para sua_domínio da seguinte forma:

  1. sudo mkdir /var/www/your_domain

Em seguida, atribua a propriedade do diretório ao usuário com o qual você está atualmente conectado, usando a variável de ambiente $USER:

  1. sudo chown -R $USER:$USER /var/www/your_domain

As permissões do seu diretório raiz da web devem estar corretas se você não tiver modificado o valor da sua máscara de usuário (umask), que define as permissões de arquivo padrão. Para garantir que suas permissões estejam corretas e permitam que o proprietário leia, escreva e execute os arquivos, enquanto concedem apenas permissões de leitura e execução para grupos e outros, você pode inserir o seguinte comando:

  1. sudo chmod -R 755 /var/www/your_domain

Em seguida, crie uma página de index.html de exemplo usando o nano ou seu editor favorito:

  1. sudo nano /var/www/your_domain/index.html

Dentro dele, adicione o seguinte HTML de exemplo:

/var/www/your_domain/index.html
<html>
    <head>
        <title>Welcome to Your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

Salve e feche o arquivo quando terminar. Se estiver usando o nano, você pode fazer isso pressionando CTRL + X, depois Y e ENTER.

Para que o Apache possa servir este conteúdo, é necessário criar um arquivo de host virtual com as diretrizes corretas. Em vez de modificar diretamente o arquivo de configuração padrão localizado em /etc/apache2/sites-available/000-default.conf, crie um novo em /etc/apache2/sites-available/seu_domínio.conf:

  1. sudo nano /etc/apache2/sites-available/your_domain.conf

Adicione o seguinte bloco de configuração, que é semelhante ao padrão, mas atualizado para o seu novo diretório e nome de domínio:

/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Observe que atualizamos o DocumentRoot para o nosso novo diretório e ServerAdmin para um e-mail que o administrador do site seu_domínio pode acessar. Também adicionamos duas diretrizes: ServerName, que estabelece o domínio base que corresponderá a esta definição de host virtual, e ServerAlias, que define outros nomes que corresponderão como se fossem o nome base.

Salve e feche o arquivo quando terminar.

Agora, habilite o arquivo com a ferramenta a2ensite:

  1. sudo a2ensite your_domain.conf

Desative o site padrão definido em 000-default.conf:

  1. sudo a2dissite 000-default.conf

Em seguida, teste por erros de configuração:

  1. sudo apache2ctl configtest

Você deve receber a seguinte saída:

Output
. . . Syntax OK

Reinicie o Apache para implementar as alterações:

  1. sudo systemctl restart apache2

O Apache agora estará servindo o seu nome de domínio. Você pode testar isso navegando até http://seu_domínio, onde verá algo semelhante ao seguinte:

Passo 6 – Familiarizando-se com Arquivos e Diretórios Importantes do Apache

Agora que você sabe como gerenciar o serviço Apache em si, você deve dedicar alguns minutos para se familiarizar com alguns diretórios e arquivos importantes.

Conteúdo

  • /var/www/html: O conteúdo web real, que por padrão consiste apenas na página padrão do Apache que você viu anteriormente, é servido a partir do diretório /var/www/html. Isso pode ser alterado modificando os arquivos de configuração do Apache.

Configuração do Servidor

  • /etc/apache2: O diretório de configuração do Apache. Todos os arquivos de configuração do Apache residem aqui.
  • /etc/apache2/apache2.conf: O principal arquivo de configuração do Apache. Isso pode ser modificado para fazer alterações na configuração global do Apache. Este arquivo é responsável por carregar muitos dos outros arquivos no diretório de configuração.
  • /etc/apache2/ports.conf: Este arquivo especifica as portas nas quais o Apache irá escutar. Por padrão, o Apache escuta na porta 80 e adicionalmente escuta na porta 443 quando um módulo que fornece capacidades SSL está habilitado.
  • /etc/apache2/sites-available/: O diretório onde os hosts virtuais por site podem ser armazenados. O Apache não usará os arquivos de configuração encontrados neste diretório, a menos que estejam vinculados ao diretório sites-enabled. Tipicamente, toda a configuração do bloco do servidor é feita neste diretório e então habilitada vinculando ao outro diretório com o comando a2ensite.
  • /etc/apache2/sites-enabled/: O diretório onde os hosts virtuais por site habilitados são armazenados. Tipicamente, estes são criados vinculando aos arquivos de configuração encontrados no diretório sites-available com o comando a2ensite. O Apache lê os arquivos de configuração e links encontrados neste diretório quando ele inicia ou recarrega para compilar uma configuração completa.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Estes diretórios têm a mesma relação que os diretórios sites-available e sites-enabled, mas são usados para armazenar fragmentos de configuração que não pertencem a um host virtual. Arquivos no diretório conf-available podem ser habilitados com o comando a2enconf e desabilitados com o comando a2disconf.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: Estes diretórios contêm os módulos disponíveis e habilitados, respectivamente. Arquivos com extensão .load contêm fragmentos para carregar módulos específicos, enquanto arquivos com extensão .conf contêm a configuração para esses módulos. Módulos podem ser habilitados e desabilitados usando os comandos a2enmod e a2dismod.

Registros do Servidor

  • /var/log/apache2/access.log: Por padrão, cada requisição ao seu servidor web é registrada neste arquivo de log, a menos que o Apache esteja configurado de outra forma.
  • /var/log/apache2/error.log: Por padrão, todos os erros são registrados neste arquivo. A diretiva LogLevel na configuração do Apache especifica o nível de detalhe dos logs de erro.

Conclusão

Agora que você tem seu servidor web instalado, você tem muitas opções para o tipo de conteúdo que pode servir e as tecnologias que pode usar para criar uma experiência mais rica.

Se você deseja construir uma pilha de aplicativos mais completa, pode ler este artigo sobre como configurar uma pilha LAMP no Ubuntu 22.04

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-22-04