httpd.conf中加载模块核心是LoadModule指令,语法为LoadModule module_name modules/mod_module_name.so,路径默认相对于ServerRoot,需确保模块文件存在、未被注释且权限正确。

在 httpd.conf 中加载模块,核心是使用 LoadModule 指令,语法固定、路径需准确,且必须配合模块实际存在位置和启用状态。
关键点:模块名与文件名要对应,路径默认相对于 ServerRoot
LoadModule 语句的标准写法
LoadModule module_name modules/mod_module_name.so
-
module_name是模块的内部标识名(如rewrite_module、php7_module),不能随意改 -
modules/mod_module_name.so是模块文件路径;若为相对路径,它相对于ServerRoot目录(通常是/etc/httpd或/usr/local/apache2) - 绝对路径也可用,例如:
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so
✅ 正确示例(启用 rewrite 模块):
LoadModule rewrite_module modules/mod_rewrite.so✅ 正确示例(启用 PHP 7 模块,路径按实际调整):
Apache Superset Dashboard and SQL Exploration Skill下载Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
LoadModule php7_module modules/libphp7.so
加载前要确认的三件事
- 确保模块文件真实存在:
ls /etc/httpd/modules/mod_rewrite.so
- 确保
ServerRoot设置正确(通常在httpd.conf开头):ServerRoot "/etc/httpd"
- 确保该行没被注释(开头不能有
#):
❌ 错误写法:#LoadModule rewrite_module modules/mod_rewrite.so
模块配置常放的位置
- 不建议直接改
httpd.conf主文件 - 推荐把
LoadModule放在模块专用配置目录中,比如:- CentOS/RHEL 默认加载
/etc/httpd/conf.modules.d/*.conf - 可新建
/etc/httpd/conf.modules.d/10-php.conf,写入 PHP 相关模块 - 这样更清晰、易维护,也避免主配置被意外破坏
- CentOS/RHEL 默认加载
加载后验证是否生效
重启或重载配置后,运行命令检查:
httpd -M | grep -i rewrite # 输出类似: rewrite_module (shared) httpd -t # 返回 "Syntax OK" 表示配置无语法错误
如果报错如 Cannot load modules/mod_php7.so,常见原因包括:
- 文件路径错误或权限不足(需
r-x权限) - 模块依赖缺失(如
mod_proxy需先加载mod_proxy_http) - Apache 版本与模块不兼容(如用 httpd 2.4 加载 2.2 编译的
.so)
不复杂但容易忽略细节。


















