46.3. Configuração

O Apache no SUSE Linux pode ser configurado de duas maneiras diferentes: com o YaST ou manualmente. A configuração manual oferece um nível maior de detalhes, mas não tem a conveniência da interface gráfica de usuário do YaST.

[Important]Mudanças de configuração

As mudanças a alguns valores de configuração do Apache somente são efetuadas depois que o Apache é reiniciado. Isso ocorre automaticamente ao concluir a configuração usando o YaST com a opção Habilitado selecionada para o Serviço HTTP. A reiniciação manual está descrita na Seção 46.3.3, “Ativando, iniciando e parando o Apache”. A maioria das mudanças de configuração somente requerem um recarregamento com o rcapache2 reload.

46.3.1. Configurando o Apache com o YaST

Com o YaST, você pode transformar um host da rede em um servidor Web. Para configurar esse servidor, inicie o YaST e selecione Serviços de Rede+Servidor HTTP. Quando o módulo é iniciado pela primeira vez, o Assistente de Servidor HTTP é iniciado, solicitando que você tome algumas decisões básicas em relação à administração do servidor.

46.3.1.1. Assistente de Servidor HTTP

O Assistente de Servidor HTTP consiste em cinco etapas ou caixas de diálogo. Na última etapa da caixa de diálogo, você tem a oportunidade de entrar no modo de configuração técnica para realizar configurações ainda mais específicas.

Seleção de dispositivos de rede

Especifique aqui as interfaces e portas de rede usadas pelo Apache para escutar as solicitações recebidas. Você pode selecionar qualquer combinação de interfaces de rede existentes e seus respectivos endereços IP. As portas de todas as três faixas (portas conhecidas, portas registradas e portas dinâmicas ou privadas), que não forem reservadas por outros serviços, poderão ser usadas.

A configuração padrão consiste em escutar em todas as interfaces de rede (endereços IP) na porta 80. Quando o firewall é habilitado, você pode verificar se as portas Apache devem ser habilitadas nele.

Marque Abrir Firewall nas Portas Selecionadas para abrir as portas no firewall em que o servidor Web escuta. É necessário tornar um servidor Web disponível na rede, que pode ser uma LAN, uma WAN ou a Internet. Manter a porta de Escuta fechada é útil em situações de teste em que não é necessário nenhum acesso externo ao servidor Web. Se você estiver satisfeito com as configurações padrão ou se tiver feito mudanças, clique em Próximo para continuar a configuração.

Figura 46.1. Assistente de Servidor HTTP: Seleção de dispositivos de rede

Assistente de Servidor HTTP: Seleção de dispositivos de rede
Módulos

O pacote Apache para SUSE Linux contém uma grande variedade de módulos Apache. Os módulos estendem a funcionalidade do Apache e estão disponíveis para diversas tarefas. A opção de configuração Módulos permite carregar e descarregar vários módulos Apache quando o servidor é iniciado. Para obter uma explicação mais detalhada dos módulos, consulte a Seção 46.5, “Módulos do Apache”. Clique em Próximo para continuar.

Figura 46.2. Assistente de Servidor HTTP: Módulos

Assistente de Servidor HTTP: Módulos
Host padrão

Esta opção pertence ao servidor Web padrão. Como explicado na Seção 46.4, “Hosts virtuais”, o Apache pode atender a vários domínios de uma única máquina física. O primeiro domínio declarado (ou VirtualHost) no arquivo de configuração é normalmente conhecido como Host Padrão. Para editar as configurações do host, escolha a entrada adequada na tabela e clique em Editar. Para adicionar um novo host, clique em Adicionar. Para apagar um host, selecione-o e clique em Excluir.

Nessa etapa, você pode decidir adicionar um valor e uma opção SSL (secure sockets layer) para as configurações do host. Você pode ler mais sobre isso em Seção 46.3.1.3, “Adicionando o suporte SSL”.

Figura 46.3. Assistente de Servidor HTTP: Host padrão

Assistente de Servidor HTTP: Host padrão

Esta é a lista das configurações padrão do servidor:

Root do documento

Como descrito em Seção 46.2.3.4, “Root do documento”, /srv/www/htdocs é o local padrão de onde o Apache dá suporte a páginas da Web.

Diretório

/srv/www/htdocs é o local das páginas da Web.

Álias

Com a ajuda das diretivas Alias, os URLs podem ser mapeados para locais físicos do sistema de arquivos. Isso significa que determinado caminho mesmo fora de Document Root no sistema de arquivos pode ser acessado por meio de um URL que serve de álias para esse caminho.

O diretório padrão Alias /icons do SUSE Linux aponta para /usr/share/apache2/icons para os ícones do Apache exibidos na tela de índice do diretório.

Diretório

/usr/shareapache2/icons é o local do diretório Alias.

Álias de script

Semelhante à diretiva Alias, a diretiva ScriptAlias mapeia um URL para o local do sistema de arquivos. A diferença é que ScriptAlias designa o diretório de destino como um local CGI, significando que os scripts CGI devem ser executados nesse local.

Diretório

/srv/www/cgi-bin é o local do diretório ScriptAlias.

Inclusão

/etc/apache2/conf.d/*.conf é o diretório que contém os arquivos de configuração que acompanham determinados pacotes. /etc/apache2/conf.d/apache2-manual?conf é o diretório que contém todos os arquivos de configuração apache2-manual.

Resolução do servidor

Esta opção refere-se à Seção 46.4, “Hosts virtuais”.

Determinar Servidor que Solicita por Cabeçalhos HTTP permite uma resposta do VirtualHost em uma solicitação a seu servidor de nomes (consulte Seção 46.4.1, “Hosts virtuais baseados em nome”).

Determinar Servidor que Solicita por Endereço IP faz com que o Apache selecione o host solicitado, de acordo com as informações de cabeçalho HTTP enviadas pelo cliente. Consulte a Seção 46.4.2, “Hosts virtuais baseados em IP” para obter mais detalhes sobre hosts virtuais baseados em IP.

Nome do Servidor

Especifica o URL padrão usado por clientes para entrar em contato com o servidor Web. Use um FQDN (consulte Domínio) para acessar o servidor Web em http://FQDN ou seu endereço IP.

E-Mail do Administrador do Servidor

Forneça o endereço de e-mail do administrador do servidor Web para E-Mail do Administrador do Servidor.

Após concluir a etapa do Host Padrão, clique em Próximo para continuar na caixa de diálogo de configuração.

Hosts virtuais

Nesta etapa, o assistente exibe uma lista dos hosts virtuais já configurados (consulte aSeção 46.4, “Hosts virtuais”). Um dos hosts está marcado como padrão (com um asterisco ao lado do nome do servidor). Para definir um host padrão, selecione o servidor e clique em Definir como Padrão.

Para adicionar um host, clique em Adicionar e uma caixa de diálogo será exibida para a inserção de informações básicas sobre o host. Identificação de Servidor contém o nome do servidor, a raiz do conteúdo do servidor e o e-mail do administrador. O texto de ajuda no quadro esquerdo da janela explica cada um desses itens em detalhes. Resolução do Servidor é usado para determinar como um host é identificado. Você pode especificar se deve determinar um servidor de solicitações com base em cabeçalhos HTTP ou por endereço IP do servidor, selecionando a respectiva opção. A outra possibilidade consiste em determinar o host virtual pelo endereço IP usado pelo cliente durante a conexão com o servidor. Você também pode habilitar o suporte SSL marcando essa opção. Também é possível especificar o caminho do arquivo de certificados. Quando você clica em Pesquisar, o diretório padrão /etc/apache2/ssl.crt é exibido. Após digitar todas as informações, clique em Próximo a fim de ir para a etapa final da configuração.

Figura 46.4. Assistente de Servidor HTTP: Hosts virtuais

Assistente de Servidor HTTP: Hosts virtuais
Resumo

Esta é a etapa final do assistente. Determine como e quando o servidor Apache deve ser iniciado: durante a inicialização ou manualmente. A porta selecionada anteriormente também é exibida com nos hosts padrão e virtual. Se você estiver satisfeito com as configurações, clique em Concluir para concluir a configuração.

Figura 46.5. Assistente de Servidor HTTP: Resumo

Assistente de Servidor HTTP: Resumo

46.3.1.2. Configuração Técnica do Servidor HTTP

O módulo Servidor HTTP também permite que você faça mais ajustes à configuração. Clique em Configuração Especialista de Servidor HTTP para ver mais opções de configuração. As seguintes mudanças podem ser feitas:

Escutar em

Quando você seleciona a configuração Escutar em e clica em Editar, é aberta uma nova janela na qual é possível adicionar, apagar ou editar entradas.

Módulos

Selecionando as configurações Módulos e clicando em Editar, você pode mudar o status dos módulos Apache2 clicando em Alternar Status. Clique em Adicionar Módulo para adicionar um novo módulo.

Host Padrão

Para editar as configurações do host, selecione Host Padrão e clique em Editar. Você também pode adicionar, editar ou apagar opções.

Hosts

Para adicionar, apagar, editar ou selecionar um host como padrão, selecione Hosts e clique em Editar.

Em todas as caixas de diálogo anteriores, você pode clicar em Arquivos de Registro para ver o os registros de erro e de acesso. Clique em OK para concluir a configuração e retornar ao Centro de controle do YaST.

46.3.1.3. Adicionando o suporte SSL

Para adicionar uma opção SSL ao host, clique em Adicionar na etapa três (host padrão) do Assistente de Servidor HTTP. Se o servidor já tiver sido configurado e você não tiver mais acesso ao assistente, configure uma opção SSL selecionando Hosts padrão na caixa de diálogo Configuração de Servidor HTTP ou clicando em Editar e Adicionar. Nos dois casos, uma janela pop-up é exibida para que você vá até uma opção SSL e confirme com OK. Em seguida, você deve digitar um valor para a opção selecionada. Esse procedimento pode ser tão simples quanto definir o valor como ativar ou desativar; contudo, pode ser necessário digitar um valor adequado. Se estiver em dúvida, consulte a documentação para obter os parâmetros de valor para a configuração do SSL. Depois que você clica em OK, a opção e o valor são exibidos na lista de configuração de host. Clique em Próximo a fim de ir para a próxima etapa da caixa de diálogo de configuração.

Se SSL for exibido na lista de configuração de host, clique em Editar para abrir a caixa de diálogo de configuração de SSL. Se ela não for exibida, clique em Adicionar, selecione SSL e OK para que a caixa de diálogo seja aberta automaticamente. Adicione, apague ou edite as opções de SSL. Clique em OK para retornar ao Assistente de Servidor HTTP.

46.3.2. Configurando o Apache manualmente

A configuração manual do Apache requer a edição dos arquivos de configuração de texto simples como o usuário Root.

[Important]Sem o módulo SuSEconfig do Apache2

O módulo SuSEconfig do Apache2 foi removido do SUSE Linux. Ele deixou de ser necessário para a execução do SuSEconfig após a mudança de /etc/sysconfig/apache2.

46.3.2.1. /etc/sysconfig/apache2

O /etc/sysconfig/apache2 controla algumas configurações globais do Apache, como módulos para carregar, arquivos de configuração adicionais para incluir, sinalizadores com os quais o servidor deve ser iniciado e sinalizadores que devem ser adicionados à linha de comando. Como toda opção de configuração desse arquivo está amplamente documentada, não são citadas aqui. No caso de um servidor Web de finalidade geral, /etc/sysconfig/apache2 deve bastar para as necessidades de configuração. Se uma configuração específica for necessária, consulte Seção 46.3.2.2, “Diretivas do Apache em /etc/apache2/httpd.conf: Ambiente global ”.

[Important]Arquivos criados automaticamente na inicialização do servidor

O /etc/sysconfig/apache2 cria ou edita os seguintes arquivos automaticamente quando o servidor Web é iniciado ou reiniciado.

  • /etc/apache2/sysconfig.d/loadmodule.conf—módulos carregados durante a execução

  • /etc/apache2/sysconfig.d/global.conf—configurações gerais aplicadas ao servidor inteiro

  • /etc/apache2/sysconfig.d/include.conf—lista de arquivos de configuração inclusos

Não edite esses arquivos manualmente. Em vez disso, edite as configurações correspondentes em /etc/sysconfig/apache2.

Para ter acesso a ajustes de configuração detalhados, consulte os arquivos contidos em /etc/apache2/*, verificando especificamente mudanças na configuração manual dos hosts virtuais, do ambiente global ou do servidor principal.

46.3.2.2. Diretivas do Apache em /etc/apache2/httpd.conf: Ambiente global

O SUSE Linux usa o /etc/apache2/httpd.conf como o ponto central de referência para outros arquivos de configuração. Edite o arquivo somente para habilitar recursos que não estão disponíveis em /etc/sysconfig/apache2. As diretivas contidas na seção Ambiente Global de httpd.conf afetam o funcionamento geral do Apache.

As seções a seguir descrevem algumas das diretivas que não estão disponíveis em YaST. Diretivas básicas como Root do Documento (Root do documento) são essenciais e obrigatórias tanto no Ambiente Global como em VirtualHost.

Os parâmetros e diretivas a seguir são ordenados por afiliação lógica e escopo de configuração. Todos eles devem ser definidos em /etc/apache2/httpd.conf.

46.3.2.2.1. LoadModule module_identifier /path/to/module

A diretiva LoadModule especifica um módulo do Apache a ser carregado durante a execução. module_identifier é o nome do módulo de acordo com sua documentação. /path/to/module pode ser um caminho absoluto ou relativo que aponte para o arquivo.

Exemplo 46.1. LoadModule Diretiva

LoadModule rewrite_module /usr/lib/apache2-prefork/mod_rewrite.so

No SUSE Linux, não é necessário usar instruções do LoadModule diretamente. Em vez disso, o APACHE_MODULE é usado em /etc/sysconfig/apache2.

46.3.2.2.2. MaxClients número

O número máximo de clientes que o Apache pode processar simultaneamente. O porte do MaxClients precisa ser grande o suficiente para que ele processe o número de solicitações simultâneas que o site espere receber, mas pequeno o suficiente para assegurar que haja memória RAM física suficiente para todos os processos.

46.3.2.2.3. Tempo de espera segundos

Especifica o período de tempo que o Apache deve aguardar antes de reportar um tempo de espera para uma solicitação.

46.3.2.3. Diretivas do Apache em /etc/apache2/httpd.conf: Servidor principal

As diretivas da seção Servidor Principal se aplicam quando solicitações do cliente não são tratadas pelo VirtualHost e, portanto, precisam ser processadas por um servidor padrão ou principal. Além disso, os parâmetros definidos nesse contexto são os padrões de todos os hosts virtuais configurados. Conseqüentemente, todas as diretivas do Servidor Principal também podem ser definidas no contexto do VirtualHost, substituindo os padrões.

46.3.2.3.1. DirectoryIndex nomes de arquivos

Define quais arquivos o Apache deve pesquisar para completar um URL desprovido de uma especificação de arquivo. A configuração padrão é index.html. Por exemplo, se o cliente solicitar o URL http://www.example.com/foo/ e o diretório foo contiver um arquivo chamado index.html, o Apache fornece essa página ao cliente. Para declarar vários arquivos, separe-os com espaços.

Exemplo 46.2. DirectoryIndex Diretiva

DirectoryIndex index.html index.shtml start.php begin.pl
46.3.2.3.2. AllowOverride Todos | Nenhum | opção

Essa diretiva somente pode ser usada no interior de uma declaração <Diretório></Diretório>. Consulte Diretório.

AllowOverride especifica quais opções de acesso e exibição um arquivo .htaccess (ou outros arquivos especificados por AccessFileName conforme descrição em Seção 46.3.2.3.3, “AccessFileName nomes de arquivos) pode substituir.

Valores possíveis:

Tudo

Todas as opções podem ser substituídas por um arquivo .htaccess.

Nenhum

Nenhuma das opções pode ser substituída por um arquivo .htaccess.

AuthConfig

Os diretórios podem ser protegidos por senha com a ajuda de um arquivo .htaccess.

FileInfo

Permite o uso de diretivas que controlam os tipos de documentos no interior de um arquivo .htaccess. Um exemplo típico disso é a configuração de páginas de erro personalizadas com ErrorDocument (consulte http://httpd.apache.org/docs-2.0/mod/core.html#errordocument).

Índices

Caso nenhum documento DirectoryIndex seja encontrado, esse parâmetro permite ao Apache controlar a exibição de conteúdo do diretório.

Limite

Controla o acesso a um diretório ou a certos arquivos de clientes. As diretivas Permitir, Negar e Ordenar são usadas no interior de um arquivo .htaccess para essa finalidade. Sobre o uso dessas diretivas, consulte a documentação de módulos de acesso (http://httpd.apache.org/docs-2.0/mod/mod_access.html).

Opções

Permite o uso das diretivas Opções e XBitHack em um arquivo .htaccess. A diretiva Opções (http://httpd.apache.org/docs-2.0/mod/core.html#options) controla que recursos do servidor ficam disponíveis em um determinado diretório. A diretiva XBitHack (http://httpd.apache.org/docs-2.0/mod/mod_include.html#xbithack) permite que arquivos com o conjunto de bits de execução sejam parcelados como SSI (consulte Seção 46.5.1.1, “"Server-Side Includes" com o mod_include).

[Important]Importante

Essas configurações são aplicadas recursivamente ao diretório atual e seus subdiretórios. Essas opções, exceto Todos e Nenhum, podem ser combinadas, separadas por espaços.

Exemplo 46.3. LoadModule Diretiva

<Diretório /srv/www/htdocs>
    AllowOverride Nenhum
</Directory>
<Diretório /srv/www/htdocs/project>
    AllowOverride Tudo 
</Directory> 
<Diretório /srv/www/htdocs/project/webapp>
    AllowOverride Índices Limite AuthConfig 
</Directory>
46.3.2.3.3. AccessFileName nomes de arquivos

AccessFileName define o nome dos arquivos que podem substituir as permissões de acesso global e outras configurações de diretórios (consulte Diretório).

A configuração padrão é .htaccess. Para declarar vários arquivos, separe-os com espaços.

Exemplo 46.4. AccessFileName Diretiva

AccessFileName .htaccess .acl permission.txt
46.3.2.3.4. ErrorLog arquivo | "|comando"

Especifica o nome do arquivo no qual o Apache registra as mensagens de erro. O Apache também pode fazer o registro em um comando ou script. A configuração padrão é /var/log/apache2/error_log.

Exemplo 46.5. ErrorLog Diretiva

ErrorLog /var/log/apache2/error_log
ErrorLog "|/path/to/script"
46.3.2.3.5. LogLevel nível

Isso define o nível de detalhamento das mensagens de registro a serem gravadas. Em ordem crescente de nível de detalhamento (e severidade decrescente das mensagens), o nível pode ser

  • emerg

  • alerta

  • crit

  • erro

  • aviso

  • notificação

  • info

  • depurar

A configuração padrão é aviso, recomendada para o funcionamento quotidiano. Para fins de depuração, info e depurar prestam informações úteis.

Exemplo 46.6. LogLevel Diretiva

LogLevel debug
        

46.3.2.4. Diretivas do Apache em /etc/apache2/httpd.conf: Seção dos hosts virtuais

Para manter diversos domínios ou nomes de host em uma máquina física, são necessários containers VirtualHost. Eles são declarados nas seções Hosts Virtuais da configuração. Para obter mais detalhes sobre a sintaxe e a funcionalidade dos hosts virtuais, consulte Seção 46.4, “Hosts virtuais”.

46.3.3. Ativando, iniciando e parando o Apache

Para ativar o servidor Web do Apache no momento da inicialização, use o editor de níveis de execução do YaST. Para iniciá-lo, selecione Sistema+Serviços do Sistema (Nível de execução) no YaST. Em seguida, navegue até a entrada apache2. Escolha Habilitar para que o Apache inicie automaticamente quando a máquina for inicializada. Convém aos usuários experientes usar a ferramenta chkconfig para executar a mesma tarefa na linha de comando: /sbin/chkconfig -a apache2.

Para iniciar ou parar o Apache, use o script /usr/sbin/rcapache2 como o usuário Root. O script /usr/sbin/rcapache2 utiliza os seguintes parâmetros para iniciar e parar o servidor Web do Apache:

iniciar

Inicia o servidor Web do Apache.

startssl

Inicia o servidor Web do Apache com o suporte a SSL. Para obter informações sobre a configuração do Apache com o SSL, consulte Seção 46.3.1.3, “Adicionando o suporte SSL” e Seção 46.5.2.2, “Secure Socket Layer e o Apache: mod_ssl.

parar

Pára o servidor Web do Apache.

configtest

Testa a configuração do Apache sem efetivamente parar, iniciar ou reiniciar o servidor Web. Como esse teste é forçado toda vez que o servidor é iniciado, recarregado ou reiniciado, normalmente não é necessário executar o teste explicitamente.

reiniciar

Primeiro pára e depois reinicia o servidor Web.

try-restart

Reinicia o servidor Web caso ele esteja em execução.

restart-hup

Reinicia o servidor Web do Apache enviando-o um sinal SIGHUP. Esse parâmetro normalmente não é usado.

normal e recarregar

Interrompe o servidor Web instruindo todos os processos bifurcados do Apache para primeiro concluir sua solicitação antes de encerrar. Com o término de cada processo, ele é substituído por um processo recém-iniciado, o que resulta na total "reinicialização" do Apache.

[Tip]Dica

O rcapache2 recarregar é o método preferencial de reinicialização do Apache em ambientes de produção, pois permite que todos os clientes sejam atendidos sem provocar interrupções na conexão.

status

Verifica o status do tempo de execução do servidor Web do Apache.

Exemplo 46.7. Exemplo: Saída ao iniciar e parar o Apache

tux@sun # rcapache2 status 
Verificando httpd2:                                  não utilizado

tux@sun # rcapache2 configtest 
Sintaxe OK

tux@sun # rcapache2 start 
Iniciando httpd2 (pré-bifurcação)                    concluído

tux@sun # rcapache2 status 
Verificando httpd2:                                  em execução

tux@sun # rcapache2 graceful 
Recarregar httpd2 (reinicialização normal)           concluído

tux@sun # rcapache2 status 
Verificando httpd2:                                  em execução
            

Um arquivo de configuração mal formulado pode fazer com que o Apache não inicie corretamente ou não inicie. Quando o Apache não iniciar, pode ser que não haja nem a exibição de uma mensagem. Sempre verifique o registro principal de erros de cada inicialização e reinicialização.