46.2. Instalação

O Apache no SUSE Linux é executado "fora da caixa" com uma configuração padrão e predefinida. Se seguir as instruções neste capítulo, o servidor Web do Apache estará funcionando em pouco tempo. Você deve ser root para instalar e configurar o Apache.

46.2.1. Instalando o Apache com o YaST

O pacote apache2 para SUSE Linux é um pouco diferente em seu sistema de arquivos e layout de aplicativo em relação ao pacote de software padrão disponível no site do Apache (http://httpd.apache.org). A seção a seguir descreve detalhadamente a instalação desse pacote e indica as variações quando aplicáveis.

Para instalar um servidor Web simples, faça o seguinte:

Procedimento 46.1. Instalação rápida

  1. Inicie o YaST no modo de interface padrão ou de linha de comando.

  2. Selecione Serviços de Rede+Servidor HTTP.

  3. Clique em Continuar para confirmar a instalação dos pacotes apache2 e apache2-prefork.

  4. Uma vez concluída a instalação, o Assistente de Configuração do Apache é exibido, e você pode iniciar a configuração do servidor Web.

A desvantagem de seguir o procedimento acima é que não há suporte a banco de dados e PHP. Para instalar um servidor Web com esse suporte, faça o seguinte:

Procedimento 46.2. Instalação de servidor Web simples

  1. Inicie o YaST no modo de interface padrão ou de linha de comando.

  2. Selecione Software+Instalar e Remover Software.

  3. Selecione Seleções em Filtro e marque Servidor da Web Simples com Apache2.

  4. Pressione OK.

  5. Confirme a instalação dos pacotes dependentes para concluir o processo de instalação do Apache2 para SUSE Linux.

Para usuários avançados, o SUSE Linux oferece uma seleção de pacotes personalizados. Para executar uma instalação personalizada de um servidor Web, faça o seguinte:

Procedimento 46.3. Instalação do RPM padrão do Apache com o YaST

  1. Inicie o YaST no modo de interface padrão ou de linha de comando. Selecione Software+Instalar e Remover Software.

  2. Selecione Pesquisar em Filtro e digite apache2 no campo Pesquisar.

  3. Selecione apache2 para instalação.

  4. Use as etapas 2 e 3 para a seleção do módulo. Consulte a Seção 46.5, “Módulos do Apache”.

  5. Após a seleção, pressione Aceitar.

  6. Em seguida, você deverá escolher uma das dependências para o pacote apache2-MPM necessário: apache2-prefork ou apache2-worker. Consulte a Seção 46.2.2, “Módulos de multiprocessamento” para obter uma explicação das diferenças entre os dois. Se você estiver em dúvida, selecione o pacote apache2-prefork, que é o padrão para os sistemas operacionais baseados em Unix, e pressione OK.

  7. Confirme a instalação dos pacotes dependentes para concluir o processo de instalação do Apache2 para SUSE Linux.

[Note]Iniciando um servidor Web

A instalação do Apache não inicia automaticamente o servidor Web. Consulte a Seção 46.3.3, “Ativando, iniciando e parando o Apache” para obter informações sobre como controlar a inicialização e o encerramento do Apache.

46.2.2. Módulos de multiprocessamento

Conforme mencionado em Instalação do RPM padrão do Apache com o YaST, o SUSE Linux oferece dois módulos de multiprocessamento (MPMs) diferentes para uso com o Apache. Os MPMs são responsáveis pela aceitação e manipulação de solicitações ao servidor Web, representando o centro do software do servidor Web.

46.2.2.1. MPM prefork

O MPM prefork implementa um servidor Web de pré-bifurcação não encadeado. Ele faz com que o servidor Web comporte-se de maneira semelhante ao Apache versão 1.x no sentido de que ele isola as solicitações e as trata através da pré-bifurcação de um processo-filho separado . Dessa forma, solicitações problemáticas não podem afetar outros, evitando um bloqueio do servidor Web.

Embora o MPM prefork ofereça estabilidade com esta abordagem baseada em processo, ele consome mais recursos do sistema do que o seu equivalente, o MPM worker. O MPM prefork é considerado o MPM padrão para sistemas operacionais baseados em Unix.

[Important]MPMs neste documento

Este documento pressupõe que o Apache é usado com o MPM prefork.

46.2.2.2. MPM worker

O MPM worker oferece um servidor Web multiencadeado. Encadeamento é uma forma “mais simples” de um processo. A vantagem de um encadeamento em relação a um processo é o consumo de recursos mais baixo. Em vez de somente pré-bifurcar processos-filhos, o MPM worker serve solicitações usando encadeamentos com processos do servidor. Os processos-filhos pré-bifurcados são multiencadeados.

Essa abordagem faz com que o Apache tenha um melhor desempenho, consumindo menos recursos do sistema do que o MPM prefork. Uma grande desvantagem é a estabilidade do MPM worker: se um encadeamento se torna corrupto, todos os encadeamentos de um processo podem ser afetados. No pior dos casos, isso poderá resultar em uma falha do servidor. Talvez ocorram erros do servidor interno devido a encadeamentos que não podem se comunicar com recursos do sistema, sobretudo ao usar o CGI (descrito na Seção 46.5.1.2, “Interface de Gateway Comum: mod_cgi) com o Apache em uma carga pesada.

Outro argumento contra o uso do MPM worker com o Apache é que nem todos os módulos Apache disponíveis (consulte a Seção 46.5, “Módulos do Apache”) são seguros para o processo e, portanto, não podem ser usados em conjunto com o MPM worker.

[Warning]PHP como um módulo do Apache (mod_php)

Nem todos os módulos PHP disponíveis são seguros para o processo. O uso do MPM worker com mod_php é bastante desestimulado.

46.2.3. Sistema de arquivos padrão e layout de aplicativos

O SUSE Linux coloca os arquivos do pacote Apache em locais padrão. Os locais dos arquivos mais importantes estão listados aqui.

46.2.3.1. Binários

A maioria dos arquivos executáveis do SUSE Linux Apache contém um 2 anexado a eles. Isso simplifica a diferenciação de arquivos binários de uma instalação do Apache 1.x paralela ao Apache 2.x.

/usr/sbin/httpd2

Link simbólico que aponta para o módulo de multiprocessamento escolhido conforme descrição contida em Seção 46.2.2, “Módulos de multiprocessamento”. O padrão é httpd2-prefork. O link simbólico é mantido pelo script de inicialização de acordo com a configuração do sistema do MPM.

/usr/sbin/httpd2-prefork

O Apache2 executável propriamente dito.

/usr/sbin/apache2ctl

Script de controle para iniciar e parar o servidor Web, fornecido pelo projeto HTTPD do Apache. Consulte Seção 46.3.3, “Ativando, iniciando e parando o Apache” para obter mais informações ou execute /usr/sbin/apache2ctl help.

/etc/init.d/apache2

Inicia e pára o script proporcionando total integração na instalação do SUSE Linux e iniciando o Apache no momento da inicialização. Ele verifica se há uma configuração válida antes de iniciar e parar o servidor, e substitui o local da configuração. Permite a fácil inclusão de arquivos de configuração adicionais, do carregamento de módulos, ou mesmo do início de uma instância separada do servidor sem modificação do script.

/usr/sbin/rcapache2

Um link simbólico prático para /etc/init.d/apache2, pois /etc/init.d/ não faz parte do caminho por padrão. Basta usar rcapache2 start para iniciar o Apache.

/usr/sbin/htpasswd2

Utilitário para gerar senhas criptografadas para a autenticação baseada em .htaccess. Consulte a página do manual htpasswd2(1) para obter detalhes sobre o uso da ferramenta.

46.2.3.2. Arquivos de configuração

A maioria dos arquivos de configuração fica situada em /etc/apache2. Para obter informações sobre como fazer mudanças nas configurações, consulte Seção 46.3, “Configuração”.

/etc/apache2/httpd.conf

Arquivo de configuração de nível superior. Se possível, evite fazer mudanças nesse arquivo. Ele inclui, principalmente, outros arquivos de configuração e declara configurações globais.

/etc/apache2/*.conf

Alguns módulos externos do Apache colocam seus arquivos de configuração no diretório /etc/apache2/, normalmente com o próprio nome do módulo como prefixo (mod_*.conf).

/etc/apache2/conf.d/*

Diretório que abriga diversos outros arquivos de configuração que vêm em determinados pacotes. Para obter um exemplo, consulte Seção 46.5.3.2, “Servindo o PHP: mod_php4, mod_php5.

/etc/apache2/vhosts.d/*

Diretório que abriga os arquivos de configuração opcionais dos hosts virtuais. Consulte Seção 46.4, “Hosts virtuais” para obter detalhes.

/etc/sysconfig/apache2

Arquivo de configuração do SUSE Linux associado ao Apache2. Ele contém todos os parâmetros de configuração relevantes para o controle do servidor Web do Apache. /etc/sysconfig/apache2 é usado pelo YaST para configurar o Apache conforme descrição contida em Seção 46.3.1, “Configurando o Apache com o YaST”. Ele também pode ser editado manualmente conforme descrição em Seção 46.3.2, “Configurando o Apache manualmente”.

46.2.3.3. Arquivos de registro

Por padrão, o Apache fornece diversas informações sobre seu status de tempo de execução nos seguintes arquivos:

/var/log/apache2/error_log

O Apache registra, nesse arquivo, avisos de inicialização e encerramento, e também todos os erros de tempo de execução.

/var/log/apache2/access_log

Todas as solicitações feitas ao servidor Web são registradas nesse arquivo. O formato padrão das entradas é o formato combinado, que mostra informações sobre o host e o agente do usuário emissor da solicitação e o URI de referência.

46.2.3.4. Root do documento

O diretório físico /srv/www/htdocs é o local padrão de onde o Apache dá suporte a páginas da Web. Ele atua como “diretório raiz” para as solicitações de clientes. Para publicar página da Web com o Apache, armazene os arquivos de forma hierárquica dentro do ou sob o diretório

Um URL como http://www.example.com/index.html se refere a /srv/www/htdocs/index.html na configuração padrão do Apache no SUSE Linux para um domínio chamado example.com.

46.2.4. Construção manual de módulos

O Apache é feito com uma abordagem modular, ou seja, os módulos fornecem os recursos do próprio software do servidor Web. Conseqüentemente, o Apache pode ser ampliado por usuários avançados através da gravação de módulos personalizados. Consulte as páginas do manual a seguir para obter informações mais detalhadas.

46.2.4.1. apache2-devel

Para desenvolver módulos para o Apache ou compilar módulos de terceiros, é necessário o pacote apache2-devel, além das ferramentas de desenvolvimento correspondentes. O apache2-devel também contém as ferramentas apxs2, que são necessárias para a compilação de módulos adicionais para o Apache.

46.2.4.2. apxs2

Os binários do apxs2 ficam localizados em /usr/sbin:

  • /usr/sbin/apxs2—apropriado para a construção de um módulo de extensão que funciona com qualquer MPM. A instalação fica localizada em /usr/lib/apache2.

  • /usr/sbin/apxs2-prefork—apropriado para os módulos MPM pré-bifurcação. A instalação fica localizada em /usr/lib/apache2-prefork.

  • /usr/sbin/apxs2-worker—apropriado para os módulos MPM pré-bifurcação.

O apxs2 instala os módulos de tal modo que possam ser usados em todos os MPMs. Os outros dois programas instalam os módulos para que possam ser usados somente nos respectivos MPMs. O apxs2 instala os módulos em /usr/lib/apache2 e o apxs2-prefork instala os módulos em /usr/lib/apache2-prefork.

O apxs2 permite a compilação e instalação de módulos do código-fonte (inclusive as mudanças necessárias nos arquivos de configuração), que cria objetos compartilhados dinâmicos (DSOs) que podem ser carregados no Apache durante a execução. Para instalar um módulo do código-fonte, use os comandos cd /path/to/module/source; apxs2 -c -i mod_foo.c. Outras opções do apxs2 são descritas na página do manual apxs2(1). Em seguida, os módulos devem ser ativados em /etc/sysconfig/apache2 com a entrada APACHE_MODULES, conforme descrição contida em Seção 46.3.2, “Configurando o Apache manualmente”.