¿Cuál es la forma más elegante de verificar qué módulos de apache están habilitados?
linux
ubuntu
apache-http-server
Tú haces
fuente
fuente
apache2: bad user name ${APACHE_RUN_USER}
sudo apache2ctl -M | sort
apache2ctl
pero no se enumeran ni en la página de manual ni enapache2ctl --help
. Eso es porque son entregados ahttpd
. Se enumeran solo en la documentación de httpd .httpd -M
le dirá qué módulos están integrados o compartidos.fuente
httpd
ejecutable.apache2
y nohttpd
, por lo que no se encuentra.Nada de las respuestas anteriores funciona si no puede ejecutar comandos en el servidor remoto. Si solo tiene privilegios de "usuario" o ninguno, intente crear un
test.php
script:Aunque solo funcionará si PHP está instalado como
mod_php
.fuente
Tal vez esto ayude para algunas personas en los ordenadores compartidos que no tienen acceso a
httpd
,apachectl
o procesos:Módulos habilitados:
ls /etc/apache2/mods-enabled/
Módulos disponibles:
ls /etc/apache2/mods-available/
fuente
También puedes usar apachectl
fuente
Creo que en realidad hay tres preguntas aquí. No estoy seguro de lo que estás preguntando.
Esto estaría (generalmente) en el directorio de módulos de su distribución de apache, generalmente / etc / httpd / modules /
Esto se puede verificar con / usr / sbin / httpd -M, al menos para el sistema base apache. Si desea verificar un archivo de configuración específico / usr / sbin / httpd -M -f / path / to / config / file
Para obtener mucha información, puede verla con http: // machinename / server-info / Esto no está configurado de manera predeterminada, tendría que configurarlo . Es un poco una fuga de información, así que configúrelo así que solo la gente local puede verlo.
Si está en la máquina y tiene acceso para ser el usuario en ejecución, también puede ver qué se carga al verificar el proceso. Puede encontrar el proceso principal con:
Entonces echa un vistazo
fuente
Si está en Redhat / CentOS,
httpd
se utiliza en lugar deapache2ctl
.Esto significa que necesita usar el
Sin embargo,
httpd
casi nunca está en el camino que espera.Puedo confirmar en CentOS 5.8 que la ruta real es
/usr/sbin/httpd
.Pero si ese no es el camino, puedes descubrirlo. Así es como pude hacerlo.
Primero, verifiqué el demonio que se usaba para controlarlo.
Alrededor de la línea 40ish
Lo que me dijo exactamente dónde encontrarlo. Espero que esto ayude.
fuente
Listar todos los módulos habilitados
fuente
En mi gentoo, puedo ejecutar
apache2ctl modules
y ver los módulos enumerados.fuente
Comprobación desde el script php (para mod_xsendfile):
La comprobación de PHP_SAPI es excluir cuando php se ejecuta como CGI, ya que apache_get_modules () no funciona en ese contexto. Además, si esto se ejecuta en php <5.0.0, solo el
apache2handler
contexto producirá el resultado esperado.fuente
Creé un pequeño script de Python para ayudarte con él. Por favor, eche un vistazo a https://github.com/zioalex/unused_apache_modules
Esto es lo que puede esperar de él:
fuente