web-dev-qa-db-fra.com

Comment tester si mod_rewrite est activé?

Je mets en place un environnement pour wordpress sur Apache2, sur une nouvelle installation d'ubuntu 12.04.

Afin de faire fonctionner les URL conviviales, j'essaie de configurer mod_rewrite. J'ai suivi quelques instructions que j'ai trouvées sur le net et utilisé a2enmod.

Maintenant. après avoir redémarré Apache, je voudrais vérifier si le module est réellement chargé.

La commande que j'ai trouvée pour obtenir une liste des modules chargés est la suivante:

Apache2 -t -D DUMP_MODULES

Cependant, cela renvoie une erreur:

Apache2: nom d'utilisateur incorrect $ {Apache_RUN_USER}

Alors, comment puis-je réellement répertorier tous les modules chargés, ou sinon vérifier si mod_rewrite a été activé?

17
user124130

KM01 signifiait apachectl mais cela ne vous donnera pas ce dont vous avez besoin. Cela contrôlera le démarrage/l'arrêt/le redémarrage du serveur, ainsi que la fourniture de certaines informations d'état. L'option de fichier php fonctionne, mais nécessite un travail supplémentaire de votre part. Essayez plutôt d'exécuter php à partir de la ligne de commande: $ php -i. Cela affiche ce que phpinfo() produit, uniquement sur la ligne de commande.

Vous pouvez obtenir une liste des modules compilés en exécutant $ Apache2 -l, Mais cela n'aide pas à afficher les modules chargés dynamiquement à l'aide des directives LoadModule (ou autres).

Vous pouvez voir quels modules sont chargés dynamiquement en regardant les entrées dans /etc/Apache2/mods-enabled/. Certains ont un fichier conf supplémentaire dans le même répertoire pour la configuration. Ces modules ne sont PAS chargés deux fois. Vous pouvez voir une liste des modules disponibles à charger dynamiquement en regardant dans /etc/Apache2/mods-available/. Vous pouvez les activer sur la ligne de commande avec $ a2enmod <module_name>. Vous pouvez les décharger avec $ a2dismod <module_name>.

Lorsque vous avez terminé d'activer/désactiver, vous devez redémarrer Apache avec $ service Apache2 restart Ou $ apachectl graceful. Vous aurez besoin des privilèges root (Sudo) pour faire la plupart, sinon la totalité, de ce travail.

18
Chris Smola

1) Tapez <?php phpinfo(); ?> dans un fichier php et enregistrez-le et exécutez ce fichier sur le serveur.

2) Et maintenant vous pouvez consulter la liste des informations, recherchez simplement le mot "mod_rewrite" dans le menu de recherche du navigateur

3) S'il se trouve dans la section "Modules chargés", ce module est déjà chargé comme vous le voyez dans l'image ci-dessous, sinon vous devez passer à l'étape suivante pour activer le module mod_rewrite.

source: http://roshanbh.com.np/2008/04/check-enable-mod_rewrite-Apache.html

4
Richard

À la place d'utiliser Apache2 commande, avez-vous la commande apachectl? Il doit se trouver au même emplacement que Apache2. Ou vous pouvez exécuter la commande avec des privilèges élevés en utilisant Sudo Apache2 -t -D DUMP_MODULES

4
KM.

Sur centos 6.5+ sur le type de terminal

httpd -M | grep 'rewrite'

Si dans la réponse, vous pouvez voir rewrite_module (shared) cela signifie qu'il est installé. Vous pouvez supprimer grep 'rewrite' et obtenir la liste de tous les modules pour votre installation Apache.

3

Créez simplement mod_rewrite.php fichier dans votre répertoire racine et placez-y le code ci-dessous:

<?php 
echo
"Mod_rewrite is activated!"
; ?>

Renommez maintenant votre ancien .htaccess fichier

Créez simplement un nouveau fichier .htaccess et placez le code ci-dessous.

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

Maintenant, appuyez sur Enregistrer.

Ensuite, visitez votre site, vous recevrez un message.

2
Awais

Tout comme @Richard l'a expliqué, mais ce que vous devez réellement faire pour y parvenir est d'avoir un fichier avec le contenu suivant:

<?php
    phpinfo();
?>

Cela affiche diverses informations sur votre configuration Apache/php. D'autres trucs utiles que vous y trouverez seraient si imagick est installé ou non. Tous les modules Apache chargés sont également présents.

2
Borislav Sabev

Les informations PHP ne vous montreront pas toujours si elles sont activées ou non. Désolé!

Cependant, cette page sur Stack Overflow vous fait pointer dans la bonne direction.

Alternativement, voici quelques php pour les énumérer tous:

<?php foreach( Apache_get_modules() as $module ) echo "$module<br />";  ?>
2
misterich

Sur le type suse en tant que root dans le terminal httpd2 -M, qui donne une liste des modules chargés. httpd2 -l ne donne que les modules compilés. Cela fonctionne pour Apache 2.4

0
Richard