O servidor HTTP Apache é o servidor da Web mais utilizado no mundo. Ele fornece muitos recursos poderosos, incluindo módulos carregáveis dinamicamente, suporte robusto à mídias e ampla integração com outros softwares conhecidos.

Neste tutorial, explicaremos como instalar um servidor Web Apache no servidor Ubuntu 18.04.

Pré-requisitos

Antes de começar, você deve ter um usuário comum, não root, com privilégios sudo configurados em seu servidor. Além disso, você precisará habilitar um firewall básico para bloquear portas não essenciais.

Quando você tiver uma conta disponível, efetue login com o usuário não root para começar.

Etapa 1 - Instalando o Apache

O Apache está disponível nos repositórios de software padrão do Ubuntu, possibilitando a instalação usando as ferramentas convencionais de gerenciamento de pacotes.

Vamos começar atualizando o índice do pacote local para refletir as alterações mais recentes do upstream:

$

sudo apt update

Then, install the apache2 package:

$

sudo apt install apache2

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

Etapa 2 - Ajustando o firewall

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

Durante a instalação, o Apache se registra no UFW para fornecer alguns perfis de aplicativos que podem ser usados para ativar ou desativar o acesso ao Apache através do firewall.

Liste os perfis de aplicativos ufw digitando:

$

sudo ufw app list

Você verá uma lista dos perfis:

Output Available applications: Apache Apache Full Apache Secure OpenSSH

Como pode ver, existem três perfis disponíveis para o Apache:

  • ** Apache: ** Este perfil abre apenas a porta 80 (tráfego da web normal e não criptografado)
  • ** Apache Full: ** Este perfil abre a porta 80 (tráfego normal da Web não criptografado) e a porta 443 (tráfego criptografado TL /SSL)
  • ** Apache Secure: ** Este perfil abre apenas a porta 443 (tráfego criptografado TLS/SSL)

É recomendável que você ative o perfil mais restritivo que ainda permitirá o tráfego que você configurou. Como ainda não configuramos o SSL para o servidor neste guia, precisaremos permitir apenas o tráfego na porta 80:

$

sudo ufw allow 'Apache'

Verifique as alterações por meio do código:

$

sudo ufw status

Você deve ver o tráfego HTTP permitido na saída exibida:

Status: activeTo Action From


OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

Como você pode ver, o perfil foi ativado para permitir o acesso ao servidor da web.

Etapa 3 - Verificando seu servidor Web

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

Verifique com o sistema systemd init para garantir que o serviço esteja sendo executado, digitando:

$           

sudo systemctl status apache2

apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2018-04-24 20:14:39 UTC; 9min ago Main PID: 2583 (apache2) Tasks: 55 (limit: 1153) CGroup: /system.slice/apache2.service ├─2583 /usr/sbin/apache2 -k start ├─2585 /usr/sbin/apache2 -k start └─2586 /usr/sbin/apache2 -k start

Como você pode ver nesta saída, o serviço parece ter sido iniciado com êxito. No entanto, a melhor maneira de testar isso é solicitar uma página do Apache.

Você pode acessar a página de destino padrão do Apache para confirmar que o software está sendo executado corretamente através do seu endereço IP. Se você não souber o endereço IP do seu servidor, poderá obtê-lo de várias maneiras diferentes na linha de comando.

Tente digitar o seguinte no prompt de comando do servidor:

$

hostname -I

Você receberá alguns endereços separados por espaços. Experimente cada um no seu navegador da web para ver se eles funcionam.

Uma alternativa é digitar o seguinte, o que deve fornecer seu endereço IP público, como visto em outro local na internet:

$

curl -4 icanhazip.com

Quando você tiver o endereço IP do servidor, digite-o na barra de endereços do navegador:

http://your_server_ip

Você deve ver a página da web padrão do Ubuntu 18.04 Apache: ! [] (http: //)

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

Etapa 4 - Gerenciando o processo Apache

Agora que você tem seu servidor da Web funcionando, vamos examinar alguns comandos básicos de gerenciamento.

Para parar o seu servidor, digite:

$

sudo systemctl stop apache2

Para iniciar o servidor quando ele estiver parado, digite:

$

sudo systemctl start apache2

Para parar o servidor e reiniciá-lo, digite;
````command
sudo systemctl restart apache2

Se você está simplesmente fazendo alterações na configuração, o Apache pode recarregar sem interromper as conexões. Para fazer isso, use este comando:

$

sudo systemctl reload apache2

Por padrão, o Apache está configurado para iniciar automaticamente quando o servidor é inicializado. Se não é o que você deseja, desative essa função digitando:

$

sudo systemctl disable apache2

Para reativar o serviço para inicializar na inicialização, digite:

$

sudo systemctl enable apache2

O Apache agora deve iniciar automaticamente quando o servidor inicializar novamente.

Etapa 5 - Configurando hosts virtuais (recomendado)

Ao usar o servidor da web Apache, você pode usar hosts virtuais (semelhantes aos blocos de servidor no Nginx) para encapsular detalhes de configuração e hospedar mais de um domínio em um único servidor. Vamos configurar um domínio chamado example.com, mas você deve substituí-lo por seu próprio nome de domínio.

O Apache no Ubuntu 18.04 possui um bloco de servidor ativado por padrão, configurado para servir documentos do diretório /var/www/html.

Embora isso funcione bem para um único site, ele pode se tornar pesado se você estiver hospedando vários sites. Em vez de modificar /var/www/html, vamos criar uma estrutura de diretório dentro de /var/www para o site example.com, 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 outros sites.

Crie o diretório para example.com da seguinte forma, usando o sinalizador -p para criar os diretórios pai necessários:

$

sudo mkdir -p /var/www/example.com/html

Em seguida, atribua a propriedade do diretório com a variável de ambiente $USER:

$

sudo chown -R $USER:$USER /var/www/example.com/html

As permissões de suas raízes da web devem estar corretas se você não tiver modificado seu valor umask, mas certifique-se de digitar:

$

sudo chmod -R 755 /var/www/example.com

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

$

nano /var/www/example.com/html/index.html

Acrescente essa amostra HTML:

<pre class="language-html"><code><html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com server block is working!</h1>
    </body>
</html>
</code></pre>

Feche e salve o arquivo quando estiver pronto.

Para que o Apache sirva esse conteúdo, é necessário criar um arquivo host virtual com as diretivas corretas. Em vez de modificar o arquivo de configuração padrão localizado em /etc/apache2/sites-available/000-default.conf diretamente, vamos criar um novo em /etc/apache2/sites-available/example.com.conf:

$$

sudo nano /etc/apache2/sites-available/example.com.conf

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


    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

Observe que atualizamos o DocumentRoot para o novo diretório e o ServerAdmin para um email que o administrador do site example.com pode acessar.

Também adicionamos duas diretivas: ServerName, que estabelece o domínio base que deve corresponder a essa definição de host virtual, e ServerAlias, que define outros nomes que devem corresponder como se fossem o nome base.

Salve e feche o arquivo quando terminar.

Vamos ativar o arquivo com a ferramenta a2ensite:

$

sudo a2ensite example.com.conf

Desabilite o site em 000-default.conf:

$

sudo a2dissite 000-default.conf

Em seguida, teste para possíveis erros:

$

sudo apache2ctl configtest

Você verá o seguinte resultado:

:::output
Syntax OK
:::

Reinicie o Apache para implementar suas alterações:

$

sudo systemctl restart apache2

O Apache agora deve estar servindo seu nome de domínio. Você pode testar isso navegando para http://example.com, onde verá algo assim:

Exemplo de host virtual Apache

Etapa 6 - Familiarizando-se com diretórios e arquivos importantes do Apache

Agora que você sabe como gerenciar o próprio serviço Apache, reserve alguns minutos para se familiarizar com alguns diretórios e arquivos importantes.

ContentContent

/var/www/html: o conteúdo da Web real, que por padrão consiste apenas na página padrão do Apache que você viu anteriormente, é exibido no diretório / var / www / html. Isso pode ser alterado alterando 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 outros arquivos no diretório de configuração.
  • /etc/apache2/ports.conf: Este arquivo especifica as portas nas quais o Apache escutará. Por padrão, o Apache escuta na porta 80 e escuta adicionalmente na porta 443 quando um módulo que fornece recursos SSL está ativado.
  • /etc/apache2/sites-available/: O diretório em que 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 habilitado para sites. Normalmente, toda a configuração do bloco do servidor é feita nesse diretório e, em seguida, ativada vinculando-se ao outro diretório com o comando a2ensite.
  • /etc/apache2/sites-enabled/: O diretório em que os hosts virtuais por site estão armazenados. Normalmente, eles são criados vinculando-se aos arquivos de configuração encontrados no diretório de sites disponíveis com o a2ensite. O Apache lê os arquivos e links de configuração encontrados neste diretório quando é iniciado ou recarregado para compilar uma configuração completa.
  • /etc/apache2/ conf-available/,/etc /apache2/conf-enabled/: Esses diretórios têm o mesmo relacionamento que os diretórios disponíveis e habilitados para sites, mas são usados ​​para armazenar fragmentos de configuração que não pertence a um host virtual. Os arquivos no diretório conf-available podem ser ativados com o comando a2enconf e desativados com o comando a2disconf.
  • / etc/apache2/mods-available/,/etc/apache2/mods-enabled/: Esses diretórios contêm os módulos disponíveis e ativados, respectivamente. Os arquivos que terminam em .load contêm fragmentos para carregar módulos específicos, enquanto os arquivos que terminam em .conf contêm a configuração para esses módulos. Os módulos podem ser ativados e desativados usando os comandos a2enmod e a2dismod.

Server Logs

  • /var/log/apache2/access.log: Por padrão, todas as solicitações para o servidor da Web são registradas nesse arquivo de log, a menos que o Apache esteja configurado para fazer o contrário.
  • ** /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 quantos detalhes os logs de erro conterão.

Conclusão

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

Read more about: UbuntuControl PanelsPT-BR