Cum pot testa dacă mod_rewrite este activat? (Administrarea sistemului, Apache 2.2, Mod Rewrite)

user124130 a intrebat.

Am configurat un mediu pentru wordpress pe apache2, pe o instalare proaspătă de ubuntu 12.04.

Pentru ca URL-urile prietenoase să funcționeze, încerc să configurez mod_rewrite. Am urmat niște instrucțiuni pe care le-am găsit pe net și am folosit a2enmod.

Acum. după ce repornesc apache, aș vrea să verific dacă modulul este într-adevăr încărcat.

Comanda pe care am găsit-o pentru a obține o listă a modulelor încărcate este următoarea:

apache2 -t -D DUMP_MODULES

Totuși, aceasta returnează o eroare:

apache2: nume de utilizator greșit ${APACHE_RUN_USER}

Așadar, cum pot lista toate modulele încărcate sau cum pot verifica dacă mod_rewrite a fost activat?

8 răspunsuri
Chris Smola

KM01 a însemnat apachectl dar asta nu vă va oferi ceea ce aveți nevoie. Asta va controla pornirea / oprirea / repornirea serverului, împreună cu oferirea unor informații de stare. Opțiunea de fișier php funcționează, dar necesită ceva muncă suplimentară din partea ta. În schimb, încercați să rulați php din linia de comandă: $ php -i. Acest lucru produce ceea ce phpinfo() produce, doar că pe linia de comandă.

Puteți obține o listă a modulelor compilate rulând $ apache2 -l, , dar acest lucru nu ajută la vizualizarea modulelor încărcate dinamic cu ajutorul directivelor LoadModule (sau altele).

Puteți vedea ce module se încarcă dinamic dacă vă uitați la intrările din /etc/apache2/mods-enabled/. Unele au un fișier conf suplimentar în același director pentru configurare. Aceste module NU sunt încărcate de două ori. Puteți vedea o listă a modulelor disponibile pentru a fi încărcate dinamic, consultând în /etc/apache2/mods-available/. Le puteți activa în linia de comandă cu $ a2enmod <module_name>. Puteți să le descărcați cu $ a2dismod <module_name>.

După ce ați terminat de activat/dezactivat, trebuie să reporniți apache cu $ service apache2 restart sau $ apachectl graceful. Veți avea nevoie de privilegii de root (sudo) pentru a efectua majoritatea, dacă nu toate aceste operațiuni.

Richard

1) Tastați <?php phpinfo(); ?> într-un fișier php, salvați-l și rulați fișierul respectiv în server.

2) Și acum puteți lista de informații, doar căutați cuvântul „mod_rewrite” din meniul de căutare al browserului

3) Dacă este găsit în secțiunea „Loaded Modules” (Module încărcate), atunci acest modul este deja încărcat, așa cum vedeți în imaginea de mai jos, altfel trebuie să treceți la pasul următor pentru activarea modulului mod_rewrite.

sursă:http://roshanbh.com.np/2008/04/check-enable-mod_rewrite-apache.html

KM.

În loc să folosiți apache2 comanda, aveți opțiunea apachectl comandă? Ar trebui să fie în aceeași locație ca și apache2. Sau ați putea executa comanda cu privilegii ridicate folosind sudo apache2 -t -D DUMP_MODULES

Nicolas Guérinet

Pe centos 6.5+, la terminal, tastați

httpd -M | grep 'rewrite'

Dacă în răspuns, puteți vedea rewrite_module (shared) înseamnă că este instalat. puteți elimina grep ‘rewrite’ și să obțineți lista tuturor modulelor pentru instalarea Apache.

Borislav Sabev

Exact cum a explicat @Richard, dar ceea ce trebuie să faci de fapt pentru a obține acest lucru este să ai un fișier cu următorul conținut:

<?php
    phpinfo();
?>

Acesta tipărește diverse informații despre configurația apache/php. Alte lucruri utile pe care le veți găsi acolo ar fi dacă imagick este instalat sau nu. Toate modulele apache încărcate sunt de asemenea acolo.

misterich

PHP info nu vă va arăta întotdeauna dacă este activat sau nu. Îmi pare rău!

Cu toate acestea, această pagină de pe Stack Overflow are te îndrumă în direcția corectă.

Alternativ, aici este un fișier php care le enumeră pe toate:

<?php foreach( apache_get_modules() as $module ) echo "$module<br />";  ?>

Comentarii

  • Aveți dreptate, soluția phpinfo (sau prin extensia apache) funcționează doar dacă PHP este compilat/folosit ca un modul Apache. Nu și în *CGI, FPM, etc. În plus, mod_rewrite ar putea fi încărcat (LoadModule), dar rescrierea ar putea fi refuzată, în funcție de AllowOverride și/sau Options. –  > Por julp.
Awais

Doar creați mod_rewrite.php în directorul rădăcină și plasați codul de mai jos în el:

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

Acum redenumiți vechiul dvs. .htaccess vechiul fișier

Doar creați un nou fișier .htaccess și plasați codul de mai jos.

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

Acum apăsați save.

Apoi, vizitați site-ul dvs. veți primi un mesaj.

Richard

Pe suse tastați ca root în terminal httpd2 -M, , care oferă o listă cu modulele încărcate. httpd2 -l oferă doar modulele compilate. Acest lucru funcționează pentru Apache 2.4