Módulos DSO

Os módulos DSO permitem adicionar/remover características do Apache sem necessidade de recompilar todo o servidor web, assim interrompendo o serviço para a atualização dos arquivos. Módulos de programas terceiros também podem ser compilados e adicionado sem problemas através deste recurso.

Os módulos são carregados para a memória no momento que o apache é iniciado através da diretiva LoadModule no arquivo de configuração. Dessa forma, toda vez que um novo módulo for adicionado, removido ou alterado, será necessário reiniciar o servidor apache. A sintaxe da linha para carregar módulos .so é a seguinte:

LoadModule [nome_do_modulo] [caminho_do_arquivo_so]

nome_do_modulo

Especifica o nome do módulo, não deve conter espaços.

caminho_do_arquivo_so

Define a localização do arquivo que contém o módulo especificado. Por padrão os módulos estão localizados em /usr/lib/apache/[versão]

A posição em que os módulos aparecem podem ter influência em seu funcionamento, alguns requerem que sejam especificados antes de outros módulos para funcionarem corretamente (como o módulo php3_module, que deve ser carregado antes de qualquer módulo de controle de CGI's). Leia a documentação específica sobe o módulo em caso de dúvidas, os módulos que acompanham o Apache são documentados em detalhes no manual do Apache.

Para usar uma característica/diretiva/opção do Apache que dependa de um certo módulo, obviamente você deverá carregar o módulo correspondente (em caso de dúvidas, leia a documentação sobre o módulo). Veja a “httpd.conf” para exemplos do uso da diretiva LoadModule.

Por exemplo, se você quiser utilizar as diretivas de autorização (allow, deny, order) deverá ter o módulo mod_access carregado, para usar as diretivas de autorização (authname, authuserfile, authtype, etc) deverá ter o módulo mod_auth carregado. Mais detalhes podem ser encontrados em “Autorização”. OBS1: O suporte a DSO atualmente só está disponível para plataforma UNIX e seus derivados, como o Linux.

Também é possível ativar certas diretivas verificando se o módulo correspondente estiver ou não carregado através da diretiva IfModule:

<IfModule mod_userdir.c>
 UserDir disabled root
 UserDir public_html
</IfModule>

Nas linhas acima, as diretivas UserDir somente serão executadas se o módulo mod_userdir.c estiver carregado através da diretiva LoadModule.

Segue abaixo uma lista de módulos padrões que acompanham do Apache, os módulos marcados com "*" são ativados por padrão:

Criação de Ambiente
  • * mod_env - Ajusta variáveis de ambiente para scripts CGI/SSI

  • * mod_setenvif - Ajusta variáveis de ambiente de acordo com cabeçalhos http

  • mod_unique_id - Gera identificadores únicos para requisições

Decisão de tipo de conteúdo de arquivos
  • * mod_mime - Determinação de tipo/encodificação do conteúdo (configurado)

  • mod_mime_magic - Determinação de tipo/encodificação do conteúdo (automático)

  • * mod_negotiation - Seleção de conteúdo baseado nos cabeçalhos "HTTP Accept*"

Mapeamento de URL
  • * mod_alias - Tradução e redirecionamento de URL simples

  • mod_rewrite - Tradução e redirecionamento de URL avançado

  • * mod_userdir - Seleção de diretórios de recursos por nome de usuário

  • mod_speling - Correção de URLs digitadas incorretamente

  • mod_vhost_alias - Suporte para virtual hosts dinamicamente configurados em massa.

Manipulação de Diretórios
  • * mod_dir - Manipulação de Diretório e arquivo padrão de diretório

  • * mod_autoindex - Geração de índice automático de diretório

Controle de Acesso
  • * mod_access - Controle de acesso por autorização (usuário, endereço, rede)

  • * mod_auth - Autenticação HTTP básica (usuário, senha)

  • mod_auth_dbm - Autenticação HTTP básica (através de arquivos NDBM do Unix)

  • mod_auth_db - Autenticação HTTP básica (através de arquivos Berkeley-DB)

  • mod_auth_anon - Autenticação HTTP básica para usuários no estilo anônimo

  • mod_auth_digest - Autenticação MD5

  • mod_digest - Autenticação HTTP Digest

Respostas HTTP
  • mod_headers - Cabeçalhos de respostas HTTP (configurado)

  • mod_cern_meta - Cabeçalhos de respostas HTTP (arquivos no estilo CERN)

  • mod_expires - Respostas de expiração HTTP

  • * mod_asis - Respostas HTTP em formato simples (raw)

Scripts
  • * mod_include - Suporte a Includes no lado do servidor (SSI - Server Sides Includes)

  • * mod_cgi - Suporte a CGI (Common Gateway Interface)

  • * mod_actions - Mapeia scripts CGI para funcionarem como 'handlers' internos.

Manipuladores de conteúdo Interno
  • * mod_status - Visualiza status do servidor em tempo de execução.

  • mod_info - Visualiza sumário de configuração do servidor.

Registros de Requisições
  • * mod_log_config - Registro de requisições personalizáveis

  • mod_log_agent - Registro especializado do User-Agent HTTP (depreciado)

  • mod_log_refer - Registro especializado do Referrer HTTP (depreciado)

  • mod_usertrack - Registro de cliques de usuários através de Cookies HTTP

Outros
  • * mod_imap - Suporte a Mapeamento de Imagem no lado do servidor.

  • mod_proxy - Módulo de Cache do Proxy (HTTP, HTTPS, FTP).

  • mod_so - Inicialização do Dynamic Shared Object (DSO)

Experimental
  • mod_mmap_static - Cache de páginas freqüentemente servidas via mmap()

Desenvolvimento
  • mod_example - Demonstração da API do Apache (somente desenvolvedores)