Skip to main content

Configurações básicas no Apache2 - Parte 1

Introdução

Este artigo foi originalmente escrito para a editora DevMedia, a pedido dos editores, em Fevereiro de 2010 para ser publicado na primeira edição da revista InfraMagazine em maio de 2011.

Neste artigo será realizada a instalação do Apache de duas formas distintas. Uma delas é compilando através do código-fonte e a outra é através de pacotes próprios da distribuição. Também serão apresentadas configurações básicas de desempenho e segurança, recomendáveis em qualquer servidor Web Apache.

Serão apresentadas dicas e sugestões para boas práticas na instalação e configuração de servidores Web. As configurações sugeridas são aplicáveis em servidores de pequeno, médio e grande porte, com poucas ou milhares requisições por minuto.

Este artigo é ideal para aqueles que estão iniciando na área de infraestrutura e servidores, e até mesmo para os leitores com um pouco mais de experiência, que estão sempre em busca de novos conhecimentos. ### Servidor Web Apache

Para aqueles que só ouviram falar neste nome de forma superficial, o Apache é um servidor web open source extremamente robusto e que tem suas funcionalidades expansíveis através de módulos que podem ser adicionados na medida em que se tornarem necessários. Seu nome na verdade é Apache HTTP Server (http://httpd.apache.org), mas é popularmente conhecido como Apache.

O Apache é hoje um dos mais respeitados softwares Open Source existentes no mercado, sendo um concorrente direto do IIS (www.iis.net), desenvolvido pela Microsoft.

Sua qualidade fica claramente estampada quando analisamos sua utilização a nível global na Internet. Segundo o site Netcraft (www.netcraft.com), em Janeiro de 2010, 53,84% dos sites existentes na internet rodavam sob o Apache, contra 24,08% do IIS.

Uma vantagem, que é maior que o dobro do segundo colocado, prova a excelência desta aplicação e a qualidade que um software open source pode obter quando possui um desenvolvimento maduro e sério.

O Apache é um software multiplataforma e pode ser instalado nos principais sistemas operacionais disponíveis no mercado, como Linux, BSDs, Windows, entre outros menos populares. Por ser um software robusto, logo se pensa que exige um hardware muito poderoso para funcionar adequadamente. É aí que os inexperientes se enganam.

O principal fator relacionado à performance é o número de instâncias do servidor httpd. O Apache suporta um grande número de instâncias simultâneas, onde cada instância é relacionada a um cliente acessando o servidor.

Na verdade, o gargalo acaba se localizando na velocidade do link e, dependendo das páginas servidas, no hardware. Códigos PHP mal escritos e scripts CGI podem elevar a carga do processador e, multiplicando pelo número de instâncias simultâneas fazendo essas requisições, tem-se um verdadeiro problema. Por este motivo é possível afirmar que um servidor bem configurado não é sinônimo de desempenho superior.

Como já informado, o Apache oferece suporte a módulos que, quando instalados, adicionam funcionalidades ao servidor. Como exemplos, pode-se citar o mod_php, mod_python, mod_ftp, entre outros. A variedade de módulos é muito grande e pode ser consultada diretamente no site do projeto (modules.apache.org).

Após falar um pouco sobre o servidor web Apache, vamos à parte prática, onde serão apresentadas duas formas de instalação do Apache no Linux. A primeira delas é compilando o servidor a partir do código fonte, e a segunda é através de um gerenciador de pacotes. Optou-se por utilizar o Ubuntu (www.ubuntu.com) por ser a distribuição Linux mais popular hoje em dia. ### Compilando os fontes

Este artigo parte do princípio que o leitor está familiarizado com a compilação de algum software ou, ao menos detém as noções básicas, além de possuir os pacotes para realizar tal procedimento.

Em caso de dúvidas, no Ubuntu, é necessário instalar o pacote build-essential para que seja possível compilar os arquivos do Apache. Para isto, execute o comando:

apt-get install build-essential

A última versão do servidor pode ser encontrada no endereço httpd.apache.org/download.cgi. Quando este artigo foi escrito, a versão estável era a 2.2.14. No entanto, as configurações realizadas são válidas para qualquer versão do Apache2.

É possível baixar o arquivo pelo browser ou pelo terminal. Lembre-se, geralmente servidores não possuem interface gráfica instalada. Dessa forma, seguiremos a segunda opção.

Para realizar o download do pacote, execute o comando:

wget http://linorg.usp.br/apache/httpd/httpd-2.2.14.tar.gz

Agora é necessário efetuar a transformação em Super Usuário, através do comando:

sudo su

Assim será possível executar todos os comandos sem nenhum tipo de problema. Porém, muito cuidado com os comandos que serão utilizados: como root nada impedirá você de fazer alterações indevidas no sistema.

Neste momento é necessário descompactar o arquivo baixado. Para isso, execute o comando abaixo para armazenar os arquivos no diretório /usr/src:

tar -zxvf httpd-2.2.14.tar.gz -C /usr/src

Observe que foi utilizado o parâmetro “-C” para especificar o destino dos arquivos que estão sendo extraídos do pacote.

Feito isso, deve-se acessar esse diretório:

cd /usr/src/httpd-2.2.14/

Seguindo a proposta do artigo, esta instalação será básica, ou seja, não serão instalados módulos e/ou adicionadas funções extras ao Apache. Entretanto, caso tenha interesse de habilitar ou desabilitar algumas opções já na instalação, pode fazê-lo com o comando:

./configure --help

Agora, devem ser executados os três comandos básicos necessários para a compilação:

./configure
make
make install

Aguarde, dependendo do seu computador, isto pode levar alguns minutos. Concluído este processo, o servidor será instalado no diretório padrão que é /usr/local/apache2.

Para levantar o serviço com as configurações padrão, execute o comando:

/usr/local/apache2/bin/apachectl start

Após estes passos o Apache deve ter sido compilado com sucesso. Agora, ao acessar o endereço 127.0.0.1 com um navegador será exibida uma mensagem de confirmação, mostrando que o servidor está funcionando. ### Instalando através do Gerenciador de Pacotes Synaptics

Este artigo foi escrito utilizando como base de testes a distribuição Linux Ubuntu, porém os mesmos passos podem ser aplicados a outras distribuições derivadas do Debian.

Para realizar a instalação é necessário acessar o menu Sistema > Administração > Gerenciador de Pacotes Synaptic, pesquisar por “Apache” e depois selecionar o pacote “Apache2”. Em seguida é só aplicar e esperar o sistema realizar todo o trabalho.

Caso esteja utilizando o terminal, este processo pode ser feito com o comando:

apt-get install apache2

A instalação via gerenciador de pacotes é visivelmente mais simples e torna todo gerenciamento mais fácil, visto que atualizações e patches de segurança são aplicados e instalados automaticamente. A compilação (apresentada no tópico anterior) só se faz necessária quando o administrador deseja customizar ao máximo o servidor, ou seja, em casos muito específicos.