Come testare se mod_rewrite è abilitato?


17

Sto configurando un ambiente per wordpress su apache2, su una nuova installazione di Ubuntu 12.04.

Per far funzionare gli URL amichevoli, sto cercando di impostare mod_rewrite. Ho seguito alcune istruzioni che ho trovato in rete e ho usato a2enmod.

Adesso. dopo aver riavviato Apache, vorrei verificare se il modulo è effettivamente caricato.

Il comando che ho trovato per ottenere un elenco di moduli caricati è questo:

apache2 -t -D DUMP_MODULES

Tuttavia, questo restituisce un errore:

apache2: nome utente errato $ {APACHE_RUN_USER}

Quindi, come posso effettivamente elencare tutti i moduli caricati o controllare in altro modo se mod_rewrite è stato abilitato?

Risposte:


18

KM01 significava apachectlma ciò non ti darà ciò di cui hai bisogno. Ciò controllerà l'avvio / arresto / riavvio del server, oltre a fornire alcune informazioni sullo stato. L'opzione del file php funziona, ma richiede un lavoro extra da parte tua. Invece, provare a eseguire PHP dalla riga di comando: $ php -i. Ciò genera ciò che phpinfo()genera, solo sulla riga di comando.

È possibile ottenere un elenco di moduli compilati eseguendo $ apache2 -l, ma ciò non aiuta a visualizzare i moduli caricati dinamicamente utilizzando le direttive LoadModule (o altre).

Puoi vedere quali moduli vengono caricati dinamicamente guardando le voci in /etc/apache2/mods-enabled/. Alcuni hanno un file conf aggiuntivo nella stessa directory per la configurazione. Questi moduli NON vengono caricati due volte. Puoi vedere un elenco di moduli disponibili da caricare in modo dinamico cercando in /etc/apache2/mods-available/. È possibile abilitarli dalla riga di comando con $ a2enmod <module_name>. Puoi scaricarli con $ a2dismod <module_name>.

Al termine dell'abilitazione / disabilitazione, è necessario riavviare apache con $ service apache2 restarto $ apachectl graceful. Avrai bisogno dei privilegi di root (sudo) per fare la maggior parte, se non tutte, di questo lavoro.


4

1) Digitare <?php phpinfo(); ?>un file php e salvarlo ed eseguirlo nel server.

2) E ora è possibile l'elenco delle informazioni, basta cercare la parola "mod_rewrite" dal menu di ricerca del browser

3) Se si trova nella sezione "Moduli caricati", questo modulo è già caricato come si vede nella figura seguente, altrimenti è necessario andare al passaggio successivo per abilitare il modulo mod_rewrite.

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


4

Invece di usare il apache2comando, hai il apachectlcomando? Dovrebbe essere nella stessa posizione di apache2. Oppure è possibile eseguire il comando con privilegi elevati utilizzandosudo apache2 -t -D DUMP_MODULES


2

Proprio come ha spiegato @Richard, ma ciò che devi effettivamente fare per raggiungere questo obiettivo è avere un file con i seguenti contenuti:

<?php
    phpinfo();
?>

Questo stampa varie informazioni sulla tua configurazione di apache / php. Altre cose utili che troverai ci sarebbero se imagick è installato o meno. Sono presenti anche tutti i moduli apache caricati.


2

Le informazioni PHP non ti mostreranno sempre se sono abilitate o meno. Scusate!

Tuttavia, questa pagina sopra su Stack Overflow non farti puntato nella giusta direzione.

In alternativa, ecco alcuni php per elencarli tutti fuori:

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

2
Hai ragione, la soluzione phpinfo (o tramite estensione apache) funziona solo se PHP è compilato / usato come modulo Apache. Non in * CGI, FPM, ecc. Inoltre, mod_rewrite potrebbe essere caricato (LoadModule) ma la riscrittura potrebbe essere negata, secondo AllowOverride e / o Options.
luglio

2

Basta creare il mod_rewrite.phpfile nella directory principale e inserire il codice seguente:

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

Ora rinomina il tuo vecchio .htaccessfile

Basta creare un nuovo file .htaccess e posizionare il codice seguente.

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

Ora premi Salva.

Quindi visita il tuo sito riceverai un messaggio.


2

Su centos 6.5+ al tipo di terminale

httpd -M | grep 'rewrite'

Se nella risposta, puoi vedere rewrite_module (condiviso) significa che è installato. Puoi rimuovere grep 'rewrite' e ottenere l'elenco di tutti i moduli per l'installazione di Apache.


0

Sul tipo di suse come root nel terminale httpd2 -M, che fornisce un elenco di moduli caricati. httpd2 -lfornisce solo i moduli compilati. Funziona con Apache 2.4

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.