如何测试是否启用了mod_rewrite?


17

我在新安装的ubuntu 12.04上为apache2上的wordpress设置环境。

为了使友好的URL工作,我试图设置mod_rewrite。我遵循在网上找到的一些说明,并使用了a2enmod。

现在。在重新启动apache之后,我想检查模块是否实际加载。

我找到的用于获取已加载模块列表的命令是:

apache2 -t -D DUMP_MODULES

但是,这将返回错误:

apache2:用户名错误$ {APACHE_RUN_USER}

那么,如何实际列出所有已加载的模块,或者检查是否已启用mod_rewrite?

Answers:


18

KM01的意思是,apachectl但这不能满足您的需求。这将控制服务器的启动/停止/重新启动,并提供一些状态信息。php file选项有效,但是您需要做一些额外的工作。而是尝试从命令行运行php :$ php -i。这phpinfo()仅在命令行上输出什么输出。

您可以通过运行来获得已编译模块的列表$ apache2 -l,但这对于使用LoadModule(或其他)指令查看动态加载的模块没有帮助。

通过查看中的条目,可以看到正在动态加载哪些模块/etc/apache2/mods-enabled/。有些在同一目录中有一个额外的conf文件用于配置。这些模块不会被加载两次。通过搜索,您可以看到可用模块动态加载的列表/etc/apache2/mods-available/。您可以使用在命令行上启用它们$ a2enmod <module_name>。您可以使用卸载它们$ a2dismod <module_name>

完成启用/禁用后,必须使用$ service apache2 restart或重新启动apache $ apachectl graceful。您将需要root(sudo)特权才能完成大部分(如果不是全部)这项工作。


4

1)键入<?php phpinfo(); ?>一个php文件并保存,然后在服务器中运行该文件。

2)现在您可以获取信息列表了,只需从浏览器的搜索菜单中搜索单词“ mod_rewrite”

3)如果在“已加载的模块”部分下找到了该模块,则该模块已被加载,如下图所示,否则,请转到下一步以启用mod_rewrite模块。

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


4

不用apache2命令,您有apachectl命令吗?应该与相同的位置apache2。或者您可以使用提升的特权执行命令sudo apache2 -t -D DUMP_MODULES


2

就像@Richard解释的那样,但是要实现该目标,实际上需要做的是拥有一个包含以下内容的文件:

<?php
    phpinfo();
?>

这会打印出有关您的apache / php配置的各种信息。如果没有安装imagick,您还会发现其他有用的东西。所有加载的apache模块也在那里。


2

PHP信息不会始终向您显示是否已启用。抱歉!

但是,堆栈溢出上的这一页 确实使您指向正确的方向。

另外,这里是一些php列出了所有这些:

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

2
没错,phpinfo(或通过apache扩展)解决方案仅在将PHP编译/用作Apache模块时才有效。不在* CGI,FPM等中。此外,根据AllowOverride和/或Options,可以加载mod_rewrite(LoadModule)但可以拒绝重写。
julp 2012年

2

只需mod_rewrite.php在根目录中创建文件,并将以下代码放入其中:

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

现在重命名您的旧.htaccess文件

只需创建新的.htaccess文件并放置以下代码即可。

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

现在点击保存。

然后访问您的站点,您将收到一条消息。


2

在centos 6.5+上的终端类型

httpd -M | grep 'rewrite'

如果在答案中可以看到rewrite_module(共享),则表示它已安装。您可以删除grep'rewrite'并获取Apache安装的所有模块的列表。


0

在suse上,以终端用户root身份输入httpd2 -M,以给出已加载模块的列表。httpd2 -l只给出已编译的模块。这适用于Apache 2.4

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.