Debian下为Apache启用rewrite模块

本文介绍如何在Debian和Ubuntu系统上管理Apache的模块,包括启用和禁用特定模块的方法,以及解决rewrite模块配置问题的具体步骤。

原文地址:http://hi.baidu.com/liheng_2009/item/7676267547a49322d6a89cdf


如果我们是自己编译的apache,那么启用或禁用某个模块应该说是比较容易的事,只要修改apache的配置文件就可以了。但是我们没有理由不用已经做好的二进制文件进行安装,使用apt-get要方便多了。

但是这样的安装,apache默认会启用一部分模块,一般情况下,它已经满足了大部分的需求。但是我们的需求肯定是不能确定的如我们可能要利用apache实现重定向的功能,我们可能需要alias,rewrite模块。

实际上在apache下有两种类型的模块,一种是事先编译到apache中的,另一种是在你运行apache时载入的模块你可以使用下列命令来检查你的apache已经编译了哪些模块:
#apache2 -l
事实上,在apache2的安装目录下,有这样的两个目录:
/etc/apache2/mods-enabled/ 已经被启用的模块
/etc/apache2/mods-available/ 当前系统中可用的模块
这是在apache配置文件中一个片断,很明显它是用来载入各个被启用的模块及其配置文件,也就是位于/etc/apache2/mods-enabled/下的所有以.load 和.conf结尾的文件。
# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
当然最后不要忘了重启apache:apache2 force-reload
你可以使用下列命令来启用或禁用模块:
a2enmod 模块名
a2dismod 模块名
其实它的动作就是在/etc/apache2/mods-enabled/目录创建或删除一个模块对应的链接文件。当然你也可以手工做这个动作了。
测试你的服务器是否支持rewrite功能,将下面的代码保存为.htaccess文件,上传到网站任一目录下.
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule .*$ http://www.sohu.com
</IfModule>
如果可以打开的的网站..就说明你的rewrite模块已经正常工作啦…
但如果不能打开该网站,那么可能存在下列问题。

#debian
a2enmod rewrite
#ubuntu
sudo a2enmod rewrite
指令后,即启用了 Mod_rewrite 模块。

另外,也可以通过将 /etc/apache2/mods-available/rewrite.load 连接到 /etc/apache2/mods-enabled/rewrite.load 来打开 Mod_rewrite 模块。用指令操作就是:

#debian
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
#ubuntu
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
一点小提示

事实上,当在Debian or Ubuntu 中采用上述做法并重启了 Apache 服务后,仍然无法正常 rewrite 网址。这里,还有一点需要注意的地方:

sudo vim /etc/apache2/sites-enabled/000-default

将其中的:

AllowOverride None

修改为:

AllowOverride All

上面的 /etc/apache2/sites-enabled/000-default 实则为 /etc/apache2/sites-available/default 的连接。而 AllowwOverride None 则会完全忽略 .htaccess 文件,自然其中所定义的 rewrite 规则也就不能生效了。

最后,别忘了使用下列指令来重启 Apache:

#debian
/etc/init.d/apache2 restart
#ubuntu
sudo /etc/init.d/apache2 restart


<think>好的,我现在需要回答用户的问题:“如何检测apache下wordpress是否启用”。首先,我需要考虑用户可能的场景,他们可能是在管理服务器,需要确认WordPress是否在Apache下正确运行。接下来,我需要整理检测的方法。 首先,最直接的方法是访问网站的前端,因为如果WordPress启用且正常运行,前端页面应该能正常显示。但用户可能需要更技术的方法,比如检查Apache的配置文件。Apache的配置文件通常在/etc/apache2/sites-available/或/etc/httpd/conf.d/目录下,里面可能有针对WordPress的虚拟主机配置,比如DocumentRoot指向WordPress的安装目录,或者有.htaccess的重写规则,这通常是WordPress需要的。 另外,可以检查WordPress的核心文件是否存在,比如wp-config.php,这个文件是WordPress的配置文件,存在的话说明安装了。还有,查看服务器进程,使用ps或pgrep命令查看Apache是否在运行,并且是否有处理WordPress相关请求的进程。 还可以通过访问特定的URL来测试,比如/wp-admin/,如果重定向到登录页面,说明WordPress在运行。或者检查.htaccess文件,WordPress通常会生成包含RewriteEngine的规则,用于漂亮的永久链接。 可能还需要考虑PHP的支持,因为WordPress是PHP驱动的,检查Apache是否加载了PHP模块,比如通过phpinfo()或者查看mod_php是否启用。 现在需要把这些方法整理成步骤,确保用户能一步步操作。然后,根据回答生成相关问题,比如Apache配置文件的位置、如何检查.htaccess、PHP模块启用情况等。 需要注意用户的问题是在Apache下检测WordPress是否启用,所以重点是Apache和WordPress的结合部分,而不仅仅是WordPress是否安装。可能用户需要确认的是Apache是否正确配置来运行WordPress,而不仅仅是文件存在。 总结步骤可能包括:1. 访问前端页面;2. 检查Apache配置文件;3. 验证核心文件存在;4. 测试管理后台访问;5. 检查.htaccess规则;6. 确认PHP模块启用。 现在需要将这些步骤用清晰的方式表达,然后生成相关问题。 </think> 检测Apache下WordPress是否启用可通过以下步骤操作: ### 1. 访问前端页面验证 直接通过浏览器访问目标域名或IP(需确认域名已解析/IP可访问),若能正常加载WordPress主题页面(如首页、文章页),则说明已启用。若出现"404 Not Found"或Apache默认页面,可能未正确配置。 ### 2. 检查Apache虚拟主机配置 查看Apache的虚拟主机配置文件(通常路径:`/etc/apache2/sites-available/`(Debian/Ubuntu)或`/etc/httpd/conf.d/`(CentOS/RHEL)),确认是否有指向WordPress安装目录的配置。例如: ```apache <VirtualHost *:80> ServerName example.com DocumentRoot /var/www/wordpress # WordPress实际安装路径 ... </VirtualHost> ``` 若存在此类配置且已通过`a2ensite`(Debian/Ubuntu)或`systemctl reload httpd`(CentOS)生效,则说明Apache为WordPress提供服务。 ### 3. 验证WordPress核心文件存在 登录服务器,检查WordPress安装目录(如`/var/www/wordpress`)是否包含核心文件: - `wp-config.php`:WordPress配置文件(必选) - `wp-content/`:主题、插件、上传内容目录(必选) - `wp-includes/`:核心函数库目录(必选) 若这些文件/目录存在,说明WordPress已安装且可能被Apache启用。 ### 4. 测试管理后台访问 尝试访问`https://example.com/wp-admin/`(替换为实际域名),若跳转到WordPress登录页面(而非403/404),则说明Apache已正确路由请求到WordPress。 ### 5. 检查.htaccess重写规则 WordPress依赖Apache的`mod_rewrite`模块实现伪静态(如漂亮链接)。在WordPress根目录检查是否存在`.htaccess`文件(可能隐藏),其内容通常包含: ```apache # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / ... </IfModule> # END WordPress ``` 若存在且`mod_rewrite`已启用(通过`apache2ctl -M | grep rewrite`验证),则进一步确认WordPress与Apache的集成。 ### 6. 查看Apache进程与请求日志 通过`ps aux | grep apache`或`systemctl status apache2`确认Apache服务运行正常。同时检查Apache访问日志(路径如`/var/log/apache2/access.log`),若有对`wp-*.php`(如`wp-login.php`、`wp-admin/admin-ajax.php`)的请求记录,说明WordPress正在处理请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值