408 votes

Comment vérifier quels modules apache sont activés/installés ?

Quel est le moyen le plus élégant de vérifier quels modules apache sont activés ?

14voto

Lark Points 1640

Je pense qu'il y a en fait trois questions ici. Je ne suis pas sûr de savoir laquelle vous posez.

  • Quels sont les modules que vous avez sur le disque. Quels sont tous les modules que vous pouvez utiliser.

Il se trouve (généralement) dans le répertoire modules de votre distribution apache, habituellement /etc/httpd/modules/.

  • Quels sont les modules qu'une instance spécifique est configurée pour exécuter.

Ceci peut être vérifié avec /usr/sbin/httpd -M, au moins pour le système de base apache. Si vous voulez vérifier un fichier de configuration spécifique /usr/sbin/httpd -M -f /path/to/config/file

  • Qu'est-ce qu'il y a dans un apache en fonctionnement

Pour obtenir beaucoup d'informations, vous pouvez le voir avec http://machinename/server-info/ Ce n'est pas configuré par défaut, vous devrez donc configurer il est dedans. C'est un peu une fuite d'informations, alors configurez-le pour que seules les personnes locales puissent le voir.

Si vous êtes sur la machine et que vous avez accès à l'utilisateur en cours d'exécution, vous pouvez également voir ce qui est chargé en vérifiant le processus. Vous pouvez trouver le processus parent avec :

ps -ef | gawk '/httpd/ && $3 == 1{print $2}'

Alors vérifiez

cat /proc/PID_FROM_ABOVE/maps

1 votes

Info utile mais comme le PO utilise Ubuntu, les noms et emplacements des fichiers sont différents - par exemple : /usr/sbin/apache2 au lieu de httpd, et ps -ef | gawk '/apache2/ && $3 == 1{print $2}' L'emplacement des modules est géré différemment, avec des sous-dossiers mods-available et mods-enabled.

0 votes

Merci @Linker3000... Vous avez raison, c'est pour RedHat/Centos, je vais laisser votre commentaire sur la façon de convertir à Ubuntu.

11voto

geedew Points 217

Si vous êtes sous Redhat/CentOS, httpd est utilisé à la place de apache2ctl .

Cela signifie que vous devez utiliser l'option

httpd -M

Cependant, httpd n'est presque jamais dans le sens que vous attendez.

Je peux confirmer que sous CentOS 5.8, le chemin réel est le suivant /usr/sbin/httpd .

/usr/sbin/httpd -M

Mais si ce n'est pas la voie à suivre, vous pouvez la découvrir. Voici comment j'ai pu le faire.

D'abord, j'ai vérifié le démon utilisé pour le contrôler.

less /init.d/httpd

Autour de la ligne 40

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd

Ce qui me disait exactement où le trouver. J'espère que cela vous aidera.

6voto

MetalGodwin Points 206

Liste de tous les modules activés

a2query -m

3voto

Grzegorz Golec Points 31

Sur mon gentoo, je peux exécuter apache2ctl modules et voir les modules listés.

2voto

noobish Points 381

Vérification à l'intérieur de php script (pour mod_xsendfile) :

if (in_array(PHP_SAPI, array('apache','apache2filter','apache2handler'))
  && in_array('mod_xsendfile', apache_get_modules()))
  \\doSomething();

La vérification de PHP_SAPI doit être exclue lorsque php est exécuté en tant que CGI. apache_get_modules() ne fonctionne pas dans ce contexte. De plus, si cette opération est exécutée sur php < 5.0.0, seule la fonction apache2handler contexte produira le résultat escompté.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X