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é?
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.
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
À 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
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.
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.
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.
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 />"; ?>
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