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:
Em seguida, instale o pacote 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:
O resultado será uma lista dos perfis de aplicativos:
OutputAvailable 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 porta80
(tráfego web normal, não criptografado)Apache Completo
: Este perfil abre tanto a porta80
(tráfego web normal, não criptografado) quanto a porta443
(tráfego criptografado TLS/SSL)Apache Seguro
: Este perfil abre apenas a porta443
(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
:
Você pode verificar a mudança verificando o status:
A saída fornecerá uma lista de tráfego HTTP permitido:
OutputStatus: 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
:
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:
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:
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:
Para iniciar o servidor web quando estiver parado, execute:
Para parar e então iniciar o serviço novamente, execute:
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:
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:
Para reativar o serviço para iniciar na inicialização, execute:
O Apache agora iniciará automaticamente quando o servidor for reiniciado.
Passo 5 — Configuração de Virtual Hosts (Recomendado)
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:
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
:
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:
Em seguida, crie uma página de index.html
de exemplo usando o nano
ou seu editor favorito:
Dentro dele, adicione o seguinte HTML de exemplo:
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
:
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:
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
:
Desative o site padrão definido em 000-default.conf
:
Em seguida, teste por erros de configuração:
Você deve receber a seguinte saída:
Output. . .
Syntax OK
Reinicie o Apache para implementar as alterações:
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 porta80
e adicionalmente escuta na porta443
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óriosites-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 comandoa2ensite
./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óriosites-available
com o comandoa2ensite
. 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óriossites-available
esites-enabled
, mas são usados para armazenar fragmentos de configuração que não pertencem a um host virtual. Arquivos no diretórioconf-available
podem ser habilitados com o comandoa2enconf
e desabilitados com o comandoa2disconf
./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 comandosa2enmod
ea2dismod
.
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 diretivaLogLevel
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