Descobrir os nomes corretos do módulo do Apache para a2enmod

2

Eu tenho um arquivo httpd.conf que eu devo começar a trabalhar em uma instância do Vagrant rodando o Ubuntu, que estou usando o Puppet para provisionar.

O problema que estou encontrando é com nomes de módulos. httpd.conf especifica um monte de módulos assim:

LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so

Para configurar todos esses módulos, preciso informar ao módulo Puppet Apache que estou usando (por Example42 ) quais os nomes dos módulos que quero instalar e ativar. O problema é que os nomes dos módulos são não uma correspondência de 1: 1 com as linhas httpd.conf. Em outras palavras, os nomes dos módulos nem sempre podem ser inferidos do arquivo.

Por exemplo, aqui estou eu, tentando ativar a primeira linha no arquivo ( mod_access_compat.so ):

vagrant@lucid64:~$ sudo a2enmod access_compat             
ERROR: Module access_compat does not exist!               
vagrant@lucid64:~$ sudo a2enmod access_compat_module      
ERROR: Module access_compat_module does not exist!        
vagrant@lucid64:~$ sudo a2enmod accesscompat              
ERROR: Module accesscompat does not exist!            

tl; dr: Como posso saber o nome do módulo correto para a2enmod sem tentar adivinhar?

    
por ezuk 24.09.2013 / 09:51

3 respostas

1

Se o módulo que você está procurando for uma variável, você pode procurar seu nome em /etc/apache2/mods-available/

Use o comando find para procurar por um arquivo com a parte da string que você conhece sobre o mod,

por exemplo. find /etc/apache2/mods-available/ -name *\lite\*

saída /etc/apache2/mods-available/charset_lite.load

coloque a string desejada entre *\...\* como antes ou depois dessa palavra

    
por 24.09.2013 / 15:06
6
  • a2enmod [enter] - > veja todos os módulos disponíveis
  • apache2ctl -M - > veja os módulos carregados (pode ser apachectl no RedHat)
por 01.10.2013 / 00:14
0

elimine mod_ e .so e carregue o resultado:

$ MODUL=mod_auth_basic.so
$ sudo a2enmod $(<<< $MODUL sed 's#mod_\(.*\)\.so##')
Module auth_basic already enabled
    
por 24.09.2013 / 10:43