可通过httpd -M | grep -i mod_name检查模块是否启用,输出含(shared)或(static)表示已编译可用;shared需在配置中用LoadModule启用,static已内置;无输出或显示Disabled则未启用或未编译。
可以通过 httpd -m(或 apache2ctl -m,取决于发行版)命令列出所有已加载的模块,再用 grep 筛选目标模块名,确认是否在输出中出现且状态为 shared 或 static。
查看已启用模块列表
运行以下命令:
httpd -M 2>/dev/null | grep -i mod_name
例如检查 mod_rewrite 是否启用:
httpd -M 2>/dev/null | grep -i rewrite
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
若输出类似 rewrite_module (shared) 或 rewrite_module (static),说明该模块已成功编译并可用。
区分模块加载方式
括号中的标识很重要:
-
shared:模块以动态方式编译,需在配置中通过
LoadModule显式启用 - static:模块已静态编译进 httpd 主程序,无需额外加载
- 无任何输出或显示
Disabled:模块未编译,或编译时被禁用,或尚未启用
确认模块是否真的可加载(动态模块)
即使 httpd -M 列出某模块为 shared,也需确保它在配置中被正确加载:
- 检查主配置文件(如
/etc/httpd/conf/httpd.conf或/etc/apache2/apache2.conf),或mods-enabled/目录下的符号链接 - 查找形如
LoadModule rewrite_module modules/mod_rewrite.so的行 - 修改后执行
httpd -t(或apache2ctl configtest)验证语法
检查编译时是否支持该模块(源码安装场景)
如果从源码编译 Apache,可通过以下方式确认模块是否被纳入构建:
- 查看
configure命令中是否包含--enable-rewrite(或对应模块的启用选项) - 编译完成后,检查
modules/目录下是否存在对应.so文件,如mod_rewrite.so - 运行
httpd -V查看编译参数和模块目录路径(HTTPD_ROOT和SHARED_CORE_DIR)

















