¿Cómo habilito los módulos apache desde la línea de comandos en RedHat?

29

¿Cómo habilito los módulos apache desde la línea de comandos en RedHat?

En los sistemas Debian / Ubuntu, uso a2enmod para habilitar módulos desde la línea de comandos.

¿Existe un equivalente para los sistemas de tipo RedHat / CentOS?

MarshallY
fuente

Respuestas:

27

No hay equivalente

Debian / Ubuntu elimina la configuración de Apache en una gran cantidad de archivos, donde los directorios de mods y sitios habilitados están enlazados a otros fragmentos de archivos de configuración. Los scripts a2enmod / a2ensite simplemente manipulan estos enlaces 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

En los sistemas redhat, la configuración de apache se mantiene por defecto en un archivo /etc/httpd/conf/httpd.conf. Todos los módulos se cargan desde este archivo, y se pueden deshabilitar comentando la declaración de LoadModule correspondiente.

...
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
...

Lo que RedHat / CentOS está haciendo es darle una configuración de apache bastante común, mientras que Debian está agregando sus propias "mejoras". Por supuesto, puede utilizar el sistema de configuración dividida de Debian como plantilla para crear el suyo y copiar los scripts. Sin embargo, el argumento principal para la configuración de Debian es que los paquetes del módulo Apache pueden instalar sus propios archivos de configuración, por lo que sin eso es significativamente menos útil


Editar: si está buscando una forma equivalente de hacer scripts para esto, le sugiero que use el directorio /etc/httpd/conf.d, se incluirán todos los archivos de configuración aquí. Dependiendo de cuán complicado sea el script, podría tener sentido escribir directamente archivos de una línea en conf.d, o usar enlaces simbólicos para bits más complicados.

el otro recibir
fuente
Entonces, ¿qué debo hacer en mis nuevos scripts de compilación del servidor? awk / sed locura? ¿Crear mis propios archivos de configuración y copiarlos en el lugar? Ninguna de estas opciones suena atractiva.
MarshallY
1
No estoy seguro de por qué todos critican tu respuesta; describe correctamente por qué uno no encontrará los scripts a2enmod en Red Hat-alikes. Personalmente, mi plan es usar títeres para administrar un diseño similar en mis cajas RHEL.
Chad Huneycutt
1
@womble: creo que Debian ha llevado los archivos pequeños demasiado lejos, ya que tiene un archivo completo para configurar qué puertos debería escuchar Apache, por ejemplo, y creo que los scripts de shell para crear un enlace simbólico también son un paso demasiado lejos para el punto en el que confunden a los usuarios que no entienden cómo funcionan realmente sus archivos de configuración. No lo llamaría amargo.
theotherrecibido el
Diez años después comentar, al menos sobre RHEL / CentOS 7, debe registrarse/etc/httpd/conf.modules.d
cdmo
3

Por lo general, en un sistema Redhat, encontrará una línea que se ve así en el interior /etc/httpd/conf/httpd.conf:

Incluir conf.d / *. Conf

Cuando copie un archivo de configuración /etc/httpd/conf.dy tenga una .confextensión de archivo, se recogerá y procesará cuando se inicie Apache. Por lo general, encontrará archivos de configuración para extensiones como mod_phpy mod_svn, y aplicaciones integradas con el servidor web trac, dentro de esta carpeta.

Nota al margen: para módulos de Apache como mod_phpo mod_auth_mysqlen otros sistemas que usan RPM, como OpenSuSE, puede haber otros archivos de configuración (como /etc/sysconfig/apache2) que necesitan ser editados para que Apache pueda elegir un nuevo módulo. Algo de esto depende de la herramienta de administración del sistema que se esté utilizando, es decir, yast2. Algunos de ellos dependen de productos de posventa que se pueden instalar, como plesk / cpanel. Sin embargo, la carpeta anterior es el mejor lugar para comenzar.

Karl Katzke
fuente
Para cualquiera que trabaje con Fedora 21 (y posiblemente otras versiones u otras distribuciones de la familia RH), la carga del módulo se ha movido a un nuevo directorio llamado /etc/httpd/conf.modules.d/. Verá la siguiente línea en su httpd.conf Include conf.modules.d/*.confsi ese es el caso.
Night Owl
1
yum list mod\*

instale los módulos que desee

por ejemplo 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 habilitarlo

Por defecto, todos los mods se cargan cuando están instalados, si no quieres cargar a alguien

editar archivo /etc/httpd/conf.modules.d/02-perl.confy comentar Cargar línea con signo hash ( #)

Sergio
fuente
Esta es la respuesta perfecta a la pregunta. 'Habilitar' es diferente de 'LoadModule'.
Raghav Tallam
0

'Habilitar' módulos es diferente de "LoadModules" e instalar

  • Si ya está instalado y está desconectado, el usuario root puedeservice enable httpd
  • Si los módulos y sus archivos conf no están disponibles, el usuario root puedeyum install -y <mod_name>
  • consultar disponibilidad con yum list mod\*
  • Si ya está habilitado e instalado, para cargarlos para usar los archivos borrador httpd.conf o * .conf , como
    LoadModule ldap_module modules/mod_ldap.so

  • Para verificar, si está cargado correctamente y listo para usar, apachectl -M

Raghav Tallam
fuente