如何测试 mod_rewrite 是否已启用?

如何测试 mod_rewrite 是否已启用?

我正在全新安装的 Ubuntu 12.04 上为 apache2 上的 WordPress 设置环境。

为了使友好 URL 正常工作,我正在尝试设置mod_rewrite。我按照在网上找到的一些说明进行操作,然后使用a2enmod

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

我发现获取已加载模块列表的命令是这样的:

apache2 -t -D DUMP_MODULES

但是,这会返回一个错误:

apache2: bad user name ${APACHE_RUN_USER}

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

答案1

KM01 的意思是apachectl,但这并不能满足您的需要。这将控制服务器的启动/停止/重新启动,并提供一些状态信息。php 文件选项有效,但需要您做一些额外的工作。相反,请尝试从命令行运行 php:。$ php -iphpinfo()只会在命令行上输出输出的内容。

您可以通过运行获取已编译模块的列表$ 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) 权限才能完成大部分(如果不是全部)工作。

答案2

除了使用apache2命令,您还有apachectl命令吗?它应该与位于同一位置apache2。或者您可以使用提升的权限执行命令sudo apache2 -t -D DUMP_MODULES

答案3

在 centos 6.5+ 的终端上输入

httpd -M | grep 'rewrite'

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

答案4

正如@Richard 所解释的那样,但为了实现这一点您实际上需要做的是拥有一个包含以下内容的文件:

<?php
    phpinfo();
?>

这将打印出有关您的 apache/php 配置的各种信息。无论是否安装了 imagick,您都会发现其他有用的信息。所有已加载的 apache 模块也都在那里。

相关内容