Como habilito os módulos apache a partir da linha de comando no RedHat?


29

Como habilito os módulos apache a partir da linha de comando no RedHat?

Nos sistemas Debian / Ubuntu, uso o a2enmod para ativar os módulos na linha de comando.

Existe um equivalente para sistemas do tipo RedHat / CentOS?

Respostas:


27

Não há equivalente.

O Debian / Ubuntu destrói a configuração do apache em um grande número de arquivos, onde diretórios de mods e sites ativados são vinculados a outros trechos de arquivos de configuração. Os scripts a2enmod / a2ensite apenas manipulam esses links simbólicos.

debian$ ls /etc/apache2/mods-enabled 
lrwxrwxrwx 1 root root 28 2009-03-12 18:02 alias.conf -> ../mods-available/alias.conf
lrwxrwxrwx 1 root root 28 2009-03-12 18:02 alias.load -> ../mods-available/alias.load
lrwxrwxrwx 1 root root 33 2009-03-12 18:02 auth_basic.load -> ../mods-available/auth_basic.load
lrwxrwxrwx 1 root root 33 2009-03-12 18:02 authn_file.load -> ../mods-available/authn_file.load
lrwxrwxrwx 1 root root 36 2009-03-12 18:02 authz_default.load -> ../mods-available/autoindex.load
lrwxrwxrwx 1 root root 26 2009-03-12 18:02 env.load -> ../mods-available/env.load
lrwxrwxrwx 1 root root 27 2009-03-12 18:02 mime.conf -> ../mods-available/mime.conf
lrwxrwxrwx 1 root root 27 2009-03-12 18:02 mime.load -> ../mods-available/mime.load
lrwxrwxrwx 1 root root 34 2009-03-12 18:02 negotiation.conf -> ../mods-available/negotiation.conf
lrwxrwxrwx 1 root root 34 2009-03-12 18:02 negotiation.load -> ../mods-available/negotiation.load
lrwxrwxrwx 1 root root 27 2009-06-16 21:47 php5.conf -> ../mods-available/php5.conf
lrwxrwxrwx 1 root root 27 2009-06-16 21:47 php5.load -> ../mods-available/php5.load

Nos sistemas redhat, a configuração do apache é mantida por padrão em um arquivo /etc/httpd/conf/httpd.conf. Todos os módulos são carregados deste arquivo e podem ser desativados comentando a instrução LoadModule apropriada.

...
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
...

O que o RedHat / CentOS está fazendo é fornecer uma bonita configuração apache, enquanto o debian está adicionando suas próprias "melhorias". Obviamente, você pode usar o sistema de configuração de divisão da debian como um modelo para criar o seu próprio e copiar os scripts. No entanto, o principal argumento para a instalação do debian é que os pacotes do módulo apache possam instalar seus próprios arquivos de configuração, portanto, sem isso, é significativamente menos útil


Edit: Se você está procurando uma maneira equivalente de criar scripts, sugiro que você use o diretório /etc/httpd/conf.d, quaisquer arquivos de configuração aqui serão incluídos. Dependendo da complexidade do script, pode fazer sentido gravar diretamente uma linha de arquivos no arquivo conf.d ou usar links simbólicos para bits mais complicados.


Então, o que faço nos meus novos scripts de compilação de servidor? loucura awk / sed? Criar meus próprios arquivos de configuração e copiá-los no lugar? Nenhuma dessas opções parece atraente.
MarshallY

1
Não sei por que todo mundo está ofendendo sua resposta; descreve corretamente por que não se encontra os scripts a2enmod no Red Hat-alikes. Pessoalmente, meu plano é usar fantoches para gerenciar um layout semelhante em minhas caixas RHEL.
Chad Huneycutt 20/08/2009

1
@womble - Eu acho que o debian levou muito longe os arquivos pequenos, tendo um arquivo inteiro apenas para definir quais portas o apache deve escutar, por exemplo, e eu acho que os scripts de shell apenas para criar um link simbólico também são um passo longe demais - para o ponto em que eles confundem usuários que não entendem como seus arquivos de configuração realmente funcionam. Eu não chamaria isso de amargo.
theotherreceive

Dez anos depois, comente sobre o RHEL / CentOS 7, pelo menos, você precisa fazer o check-in/etc/httpd/conf.modules.d
cdmo

3

Normalmente, em um sistema Redhat, você encontrará uma linha assim /etc/httpd/conf/httpd.conf:

Inclua conf.d / *. Conf

Quando você copia um arquivo de configuração /etc/httpd/conf.de ele possui uma .confextensão, ele é coletado e processado quando o apache é iniciado. Você normalmente encontrará arquivos de configuração para extensões como mod_phpe mod_svn, e aplicativos integrados ao servidor da web trac, dentro desta pasta.

Nota lateral: para módulos do apache como mod_phpou mod_auth_mysqlem outros sistemas que usam RPM, como o OpenSuSE, pode haver outros arquivos de configuração (como /etc/sysconfig/apache2) que precisam ser editados para que o apache escolha um novo módulo. Parte disso depende da ferramenta de gerenciamento do sistema que está sendo usada, ou seja, yast2. Algumas dependem de produtos de pós-venda que podem ser instalados, como o plesk / cpanel. No entanto, a pasta acima é o melhor lugar para começar.


Para quem trabalha com o Fedora 21 (e possivelmente outras versões ou outras distros da família RH), o carregamento do módulo foi movido para um novo diretório chamado /etc/httpd/conf.modules.d/. Você verá a seguinte linha no seu httpd.conf, Include conf.modules.d/*.confse for esse o caso.
Night Owl

1
yum list mod\*

instale os módulos que você deseja

por exemplo mod_perl

rpm -ql mod_perl.x86_64 | grep /etc/

/etc/httpd/conf.d/perl.conf
/etc/httpd/conf.modules.d/02-perl.conf

editar /etc/httpd/conf.d/perl.confpara ativá-lo

Por padrão, todos os mods são carregados quando instalados, se você não deseja carregar alguém

editar arquivo /etc/httpd/conf.modules.d/02-perl.confe comentar Carregar linha com sinal de hash ( #)


Esta é a resposta perfeita para a pergunta. 'Ativar' é diferente de 'LoadModule'.
Raghav Tallam

0

Módulos 'Ativar' é diferente de "LoadModules" e Instalar

  • Se já estiver instalado e estiver offline, o usuário root poderáservice enable httpd
  • Se os módulos e seus arquivos conf não estiverem disponíveis, o usuário root poderáyum install -y <mod_name>
  • verifique a disponibilidade com yum list mod\*
  • Se já estiver ativado e instalado, carregue-os para usar arquivos de rascunho httpd.conf ou * .conf , como
    LoadModule ldap_module modules/mod_ldap.so

  • Para verificar, se carregado corretamente e pronto para uso, apachectl -M

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.