Apache: 01 - Instalando e configurando

O Apache é o servidor WEB mais utilizado na Internet. Há outras opções como o Microsoft's Internet Information Services (IIS), mas não são tão utilizadas como ele. Disponível platadormas Linux e UNIX, o Apache torna possível a hospedagem de conteúdo e compartilhamento em redes Intranet e na Internet. Há várias aplicações para um servidor Apache, como hospesar um blog ou site de uma empresa, assim como configurar um portal de empregos para determinada companhia.

A seguir será apresentado os seguintes passos:

• Instalação
• Configuração
• Adição de Módulos
• Configuração de Hospedeiros Virtuais

E os seguintes passos adicionais para garantir as funcionalidades do servidor Apache:

• Divisão da rede em sub-redes
• Criação de servidores de redundância para o DHCP e o DNS
• Roteamento da rede TCP/IP

Instalando o Apache

Assim como outras aplicações, a instalação requer o uso de um gerenciador de pacotes adequado. No Fedora é necessário a instalação do pacote httpd , e no Debian o apache2 . Após ter instalado os pacotes, é necessária a execução do daemon, só levando em conta que os nomes poderão ser diferentes conforme a distribuição que estiver usando.

Use o seguinte comando no Debian:

# systemctl status apache2

Use o seguinte comando no Fedora:

# systemctl status httpd

Por padrão, o Debian inicia e habilita, no Fedora (ou CentOS) os dois passos terão que ser realizados:

# systemctl enable httpd
# systemctl start httpd

Uma vez que o Apache foi instalado e habilitado, teoricamente há um servidor web trabalhando na rede. Ele não será útil no momento, visto que ainda não foi configurado, mas já existe e teoricamente está funcionando. O diretório do servidor é o mesmo tanto no Debian como no Fedora (ou CentOS), /var/www/html. No entanto, o Debian cria uma página web para amostragem na forma de um arquivo index.html, pela qual é possível visualizar um navegador web em outro computador, somente usando o IP do servidor que está executando o servidor Apache. No Fedora (ou CentOS) será necessário criar essa página manualmente. Abaixo há um exemplo de como pode ser criado essa página:

<html>
<title>Apache test</title>
<body>
<p>Apache is awesome!</p>
</body>
</html>

Com o servidor Apache instalado e o serviço executando, é possível acessar por um navegador web no servidor o localhost (http://127.0.0.1 or http://localhost) e visualizar a página.

No Fedora (e CentoS) caso não seja possível acessar a página por um servidor externo, é necessário liberar o acesso remoto à página no firewall, caso contrário não será possível. Para isso execute os seguinte comandos:

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --reload

Além da porta 80, é necessária a porta 443, a porta específica usada pelo Apache, sendo usado os mesmos comandos que antes apenas substituindo a porta a ser liberada.

Se por alguma razão não ser possível a visualização da página padrão, e o navegador retornar a mensagem de erro por causa de conexão recusada, o daemon do Apache não está ativo, ou algum firewall via hardware está bloqueando o acesso.

[imagem?]

Outra maneira de testar se o servidor está ou não executando a página é via o aplicativo lynx , um navegador web baseado em texto que pode ser usado no terminal de comando. Ele pode ser uma opção mais conveniente em diversas situações, já que não exige menos recursos do servidor, e é rapidamente executado. Com a instalação dele no servidor, é possível navegar ao servidor web ao executando ele com http://localhost, ou http://<endereço IP> se o acesso for realizado a partir de outro servidor.

Para fechar o lynx é só pressionar Q (quit), seguido de Y (yes).

O processo padrão de configuração do Apache é pela instalação, seguida de teste de acesso ao Apache por outro computador na rede, e então desenvolvimento de um site e armazenamento dos arquivos em uma pasta específica.

Configurando o Apache

A configuração do Apache é realizada pela edição do arquivo de configuração, que será armazenada em dois diretórios, dependendo da distribuição.

No Fedora (ou CentOS) use o comando:

/etc/httpd/conf/httpd.conf

No Debian use o comando:

/etc/apache/apache2.conf

O diretório padrão, /var/www/html, pode ser modificado, apesar de ser o diretório padrão já que nada impede isso. Se o arquivo de configuração acabar tendo muitas configurações armazenadas, no Fedora (ou CentOS) haverá um diretório na linha 131 dentro de um bloco de configuração. No Debian, haverá um diretório  em /etc/apache2 chamado sites-available. Dentro desse diretório, há dois arquivos padrão, 000-default.conf e default-ssl.conf. Esse sdois arquivos tem como pasta padrão  /var/www/html como diretório padrão, no entanto, diferem na porta que especificam para utilização. O primeiro, a porta 80 que é a padrão para conexões usando o protocolo HTTP; e o segundo, a porta 443 que é a porta usada para conexões seguras. Essencialmente no Debian, cada arquivo de configuração especifica um tipo de conexão a ser estabelecida.

Em todos esses casos, o documento fonte é configurado em /var/www/html. Se for necessário modificá-lo, algumas mudanças adicionais terão que ser realizadas. Nesse exemplo o novo diretório assumido será  /srv/html.

Em primeiro lugar, encontre a linha com configuração:

DocumentRoot /var/www/html

Altere ela para:

DocumentRoot /srv/html

Nos testes realizados, o chamado há a referência à DocumentRoot no arquivo de configuração do Debian:

/etc/apache2/sites-available/000-default

No Fedora (ou CentOS), encontrou-se na linha 119 do seguinte arquivo de configuração:

/etc/httpd/conf/httpd.conf

Após essa alteração é necessário configurar as opções para o novo diretório. No Debian, é necessário fazer essas alterações no arquivo abaixo:

/etc/apache2/apache2.conf

No Fedora (ou CentOS), é no arquivo abaixo:

/etc/httpd/conf/httpd.conf

É necessário abrir o arquivo, e encontrar o seguinte bloco de código:

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Alterando as partes em vermelho:

<Directory "/srv/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Há diversos comentários intercalados com o código mostrado no exemplo anterior, mas a ideia é basicamente a mesma. Encontre a linha marcada em vermelho, garanta que estará sem estar comentada, e altere definindo o novo diretório. Feito isso, tudo estará devidamente configurado e o novo diretório será utilizado devidamente.

Depois é necessário configurar as permissões de acesso ao diretório /srv/html. É recomendável criar e copiar um arquivo HTML (por exemplo, index.html) nesse diretório. Após reiniciar o Apache, é possível utizá-lo.

Além desse arquivo, será possível configurar diversas opções de segurança no Apache, a partir dele. Por exemplo, desabilitar  acesso à totalidade dos arquivos do servidor. O código abaixo é de um exemplo retirado do Fedora (e similarmente encontrado no CentOS), e é responsável por prevenir acesso global ao sistema de arquivos. O código é apresentado abaixo:

<Directory />
AllowOverride none
Require all denied
</Directory>

Visualizando remotamente os arquivos .htaccess estão desabilitados por padrão:

<Files ".ht*">
Require all denied
</Files>

Outras opções, tais como a localização padrão dos arquivos de log do Apache, podem ser configurador. Por padrão, a linha do arquivo de configuração (mostrada abaixo) redireciona para /etc/httpd/logs:

ErrorLog "logs/error_log"

No entanto, isso pode levar à falhas, já que /etc/httpd/logs no Fedora (e CentOS) é um link simbólico para /var/log/httpd, que é aonde os logs deverão ser encontrados quando for necessário visualizá-los. Por padrão, o arquivo de configuração do Apache é configurado para warn , mas isso pode ser alterado para debug, info, notice, warn, error, e crit.

É importante notar que para qualquer mudança no Apache, será necessário reiniciar ou recarregar o daemon. Se você reiniciar o daemon, ele interromperá o Apache e iniciá-lo novamente. Recarregá-lo apenas faz com que ele leia os arquivos de configuração novamente. Em muitas situações é a melhor opção, pois não haverá interrupção dos sites que estão executando. Assim como com as unidades do systemd, o Apache usa os seguintes comandos para gerenciar o estado atual do daemon:

1. Inicie o daemon do Apache com o comando:

# systemctl start apache2

2. Interrompa o daemon do Apache com o comando:

# systemctl stop apache2

3. Habilite o daemon do Apache durante o boot com o comando:

# systemctl enable apache2

4. Recarregue o daemon do Apache para mantê-lo executando:

# systemctl reload apache2

5. Reinicie o daemon do Apache com o comando:

# systemctl restart apache2

Se estiver usando o Fedora (ou CentOS) substitua apache2 por httpd.

O próximo passo é a adição de módulos, para avançar clique aqui.

Comentários

Postagens mais visitadas