Como posso testar se o mod_rewrite está habilitado?

17

Estou criando um ambiente para o wordpress no apache2, em uma nova instalação do Ubuntu 12.04.

Para obter URLs amigáveis funcionando, estou tentando configurar o mod_rewrite. Eu segui algumas instruções que encontrei na net e usei a2enmod.

Agora. depois de reiniciar o apache, gostaria de verificar se o módulo está realmente carregado.

O comando que encontrei para obter uma lista de módulos carregados é o seguinte:

apache2 -t -D DUMP_MODULES

No entanto, isso retorna um erro:

apache2: nome de usuário incorreto $ {APACHE_RUN_USER}

Então, como eu realmente listo todos os módulos carregados, ou dou uma olhada para ver se mod_rewrite foi habilitado?

    
por user124130 09.06.2012 / 14:15

8 respostas

18

O KM01 significa apachectl , mas isso não lhe dará o que você precisa. Isso controlará o início / parada / reinicialização do servidor, além de fornecer algumas informações de status. A opção de arquivo php funciona, mas requer algum trabalho extra de sua parte. Em vez disso, tente executar o php na linha de comando: $ php -i . Isso gera o que phpinfo() produz, somente na linha de comando.

Você pode obter uma lista de módulos compilados executando $ apache2 -l , mas isso não ajuda na visualização de módulos carregados dinamicamente usando as diretivas LoadModule (ou outras).

Você pode ver quais módulos estão sendo carregados dinamicamente observando as entradas em /etc/apache2/mods-enabled/ . Alguns possuem um arquivo conf adicional no mesmo diretório para configuração. Esses módulos não estão sendo carregados duas vezes. Você pode ver uma lista de módulos disponíveis para carregar dinamicamente procurando em /etc/apache2/mods-available/ . Você pode ativá-los na linha de comando com $ a2enmod <module_name> . Você pode descarregá-los com $ a2dismod <module_name> .

Quando você terminar de ativar / desativar, reinicie o apache com $ service apache2 restart ou $ apachectl graceful . Você precisará de privilégios root (sudo) para fazer a maioria, senão todos, desse trabalho.

    
por 04.10.2012 / 01:06
4

1) Digite <?php phpinfo(); ?> em um arquivo php e salve-o e execute esse arquivo no servidor.

2) E agora você pode a lista de informações, basta pesquisar a palavra "mod_rewrite" no menu de pesquisa do navegador

3) Se for encontrado na seção “Loaded Modules” então este módulo já está carregado como você vê na figura abaixo, caso contrário você precisa ir para o próximo passo para habilitar o módulo mod_rewrite.

fonte: link

    
por 09.06.2012 / 14:19
4

Em vez de usar o comando apache2 , você tem o comando apachectl ? Deve estar no mesmo local que apache2 . Ou você pode executar o comando com privilégios elevados usando sudo apache2 -t -D DUMP_MODULES

    
por 09.06.2012 / 14:22
2

Assim como explicou o @Richard, mas o que você realmente precisa fazer para conseguir isso é ter um arquivo com o seguinte conteúdo:

<?php
    phpinfo();
?>

Isto imprime várias informações sobre sua configuração do apache / php. Outras coisas úteis que você encontrará lá seriam se o imagick estiver instalado ou não. Todos os módulos do apache carregados também estão lá.

    
por 09.06.2012 / 14:29
2

As informações do PHP nem sempre mostram se ele está ativado ou não. Desculpe!

No entanto, esta página acabou no Stack Overflow faz te apontar na direção certa.

Alternativamente, aqui estão alguns php para listar todos:

<?php foreach( apache_get_modules() as $module ) echo "$module<br />";  ?>
    
por 11.12.2012 / 17:47
2

Basta criar o arquivo mod_rewrite.php em seu diretório raiz e colocar o código abaixo:

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

Agora renomeie seu antigo arquivo .htaccess

Basta criar um novo arquivo .htaccess e colocar o código abaixo.

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

Agora, clique em salvar.

Em seguida, visite seu site e receba uma mensagem.

    
por 17.12.2016 / 10:21
2

Em centos 6.5+ no tipo de terminal

httpd -M | grep 'rewrite'

Se na resposta, você pode ver rewrite_module (shared) significa que ele está instalado. você pode remover o grep 'rewrite' e obter a lista de todos os módulos para a sua instalação do Apache.

    
por 19.05.2017 / 13:43
0

No tipo suse como root no terminal httpd2 -M , que fornece uma lista de módulos carregados. httpd2 -l apenas fornece os módulos compilados. Isso funciona para o apache 2.4

    
por 24.12.2014 / 11:51