apache 编译扩展模块mod_status 报错

回复 收藏
编译的步骤如下:
cd /usr/local/src/httpd-2.2.24/modules/generators/
/usr/local/apache2/bin/apxs -i -a -c -n mod_status mod_status.c

编译完成后, vim  /usr/local/apache2/conf/httpd.conf 中查看已经自动添加了一行:
LoadModule  mod_status_module  modules/mod_status.so

但是,使用命令查看加载模块时报错啦:
/usr/local/apache2/bin/httpd -M
httpd: Syntax error on line 59 of /usr/local/apache2/conf/httpd.conf: Can't locate API module structure `mod_status_module' in file /usr/local/apache2/modules/mod_status.so: /usr/local/apache2/modules/mod_status.so: undefined symbol: mod_status_module


这是因为,我们使用的模块名不合适,不应该是 mod_status_module 而是  status_module
所以,需要更改httpd.conf 改为LoadModule  status_module  modules/mod_status.so
另一种办法是,在编译扩展模块时这样指定模块名:
/usr/local/apache2/bin/apxs -i -a -c -n status mod_status.c
然后,在httpd.conf中修改后,再次运行/usr/local/apache2/bin/httpd -M 依然有错误: httpd: Syntax error on line 59 of /usr/local/apache2/conf/httpd.conf: module status_module is built-in and can't be loaded  
这是因为apache已经静态编译过该模块了!注释掉该行,然后再次运行 /usr/local/apache2/bin/httpd -M
Loaded Modules:
core_module (static)
authn_file_module (static)
authn_default_module (static)
authz_host_module (static)
authz_groupfile_module (static)
authz_user_module (static)
authz_default_module (static)
auth_basic_module (static)
include_module (static)
filter_module (static)
log_config_module (static)
env_module (static)
setenvif_module (static)
version_module (static)
mpm_prefork_module (static)
http_module (static)
mime_module (static)
status_module (static)
autoindex_module (static)
asis_module (static)
cgi_module (static)
negotiation_module (static)
dir_module (static)
actions_module (static)
userdir_module (static)
alias_module (static)
so_module (static)
deflate_module (shared)
expires_module (shared)
rewrite_module (shared)
php5_module (shared)



2014-01-15 22:05 举报
已邀请:
0

無名世界

赞同来自:

很好,学习了,很强大。
0

八滴眼泪

赞同来自:

学习
0

yanfei

赞同来自:

学习了;

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: