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


Quelle est la manière la plus élégante de vérifier quels modules Apache sont activés?


337
2018-05-17 19:55


origine




Réponses:


Vous êtes sur Ubuntu alors essayez:

apache2ctl -M

414
2018-05-17 20:01



apache2ctl -M fonctionne très bien - udo
apache2 -M entraîne cette erreur apache2: bad user name ${APACHE_RUN_USER} - udo
Assez juste - cela est dû au fait que vous n'exécutez pas la commande en tant qu'utilisateur d'exécution Apache (probablement www-data) défini dans la configuration d'Apache. Il existe un moyen de résoudre ce problème, mais vous pouvez aussi vous en tenir à apache2ctl. - Linker3000
sudo apache2ctl -M | sort - mmdemirbas
Notez qu'il existe de nombreuses options utiles (indicateurs) pour apache2ctl mais ils ne sont répertoriés ni dans la page de manuel ni dans apache2ctl --help. C'est parce qu'ils sont transmis à httpd. Ils sont répertoriés dans le documentation httpd seulement. - Lutz Prechelt


httpd -M vous indiquera quels modules sont intégrés ou partagés.


105
2018-05-17 19:56



hmm ... je reçois une commande "bash: httpd: not found" lors du lancement de httpd -M en tant que root - udo
Alors, spécifiez le chemin complet vers le httpd exécutable. - Ignacio Vazquez-Abrams
@ IgnacioVazquez-Abrams: Sur Ubuntu (et les autres distributions basées sur Debian), le nom est apache2et pas httpd, c'est pourquoi il n'est pas trouvé. - Daniel Andersson
Apache est httpd sur redhat. Essayez l'une des autres réponses si celle-ci ne fonctionne pas pour vous. - Jacks_Depression
CentOS utilise également httpd au lieu de apache2 - pedromanoel


Rien dans les réponses ci-dessus ne fonctionne si vous ne pouvez pas exécuter de commandes sur le serveur distant. Si vous n'avez que des privilèges "utilisateur" ou aucun, essayez de créer test.php scénario:

<pre>
<?php
print_r(apache_get_modules());
?>
</pre>

Bien que cela ne fonctionnera que si PHP est installé comme mod_php.


35
2018-04-11 09:10



En outre, vous voudrez ne pas avoir cette visibilité publique. Peut-être voudrez-vous limiter ce résultat aux clients avec un IP administrateur. Et vous voudrez supprimer ce script dès que vous en avez fini avec. Parce que la défense en profondeur ne le rendez pas plus facile que nécessaire. - Parthian Shot


Peut-être que cela aidera certaines personnes sur des hôtes partagés sans accès à httpd, apachectl ou processus:

Modules activés: ls /etc/apache2/mods-enabled/

Modules disponibles: ls /etc/apache2/mods-available/


19
2018-05-04 11:33



Voici la liste complète, apache2ctl les filtre - jgpATs2w


Vous pouvez aussi utiliser apachectl

apachectl -t -D DUMP_MODULES

17
2018-02-06 07:04





Je pense qu'il y a en fait trois questions ici. Je ne suis pas sûr de ce que vous demandez.

  • Quels modules avez-vous sur disque? Quels sont tous les modules que vous pouvez utiliser?

Ce serait (généralement) dans le répertoire modules de votre distribution apache, généralement / etc / httpd / modules /

  • Quels modules est une instance spécifique configurée pour s'exécuter?

Cela peut être vérifié avec / usr / sbin / httpd -M, du moins pour l'apache du système de base. Si vous voulez vérifier un fichier de configuration spécifique / usr / sbin / httpd -M -f / chemin / vers / config / fichier

  • Qu'est-ce que dans une apache en cours d'exécution

Pour obtenir beaucoup d'informations, vous pouvez le voir avec http: // nom_ordinateur / server-info / Ce n'est pas configuré par défaut, vous devez configurer C’est un peu une fuite d’informations, alors configurez-le pour que seuls les utilisateurs locaux 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}'

Ensuite, vérifiez

cat /proc/PID_FROM_ABOVE/maps

10
2018-05-17 20:57



Informations utiles, mais comme l'OP utilise Ubuntu, les noms de fichiers et les emplacements 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 les sous-dossiers disponibles pour les mods et les mods - Linker3000
Merci @ Linker3000 ... Vous avez raison, ceci est pour RedHat / Centos, je laisserai vos commentaires sur la façon de convertir en Ubuntu - Rich Homolka


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

Cela signifie que vous devez utiliser le

httpd -M

cependant, httpd est presque jamais dans la voie que vous attendez.

Je peux confirmer sur CentOS 5.8 le chemin réel est /usr/sbin/httpd.

/usr/sbin/httpd -M

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

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

less /init.d/httpd

Autour de la ligne 40ish

# 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 m'a dit exactement où le trouver. J'espère que cela t'aides.


10
2018-03-11 18:41