分类: C/C++
2008-03-08 23:23:30
|
编译并安装这个模块(apache提供的apxs非常好):
$ ./bin/apxs -c ./mod_c.c
$ ./bin/apxs -a -i -n c mod_c.la
这时apxs会自动帮我们把编译好的mod_c.so安装到modules/目录中,而且httpd.conf中已经把这个module load进去了:
[root@cn-weblog apache2.2.4]# grep mod_c conf/httpd.conf
LoadModule c_module modules/mod_c.so
测试这个模块:
$ ./bin/apachectl stop
$ ./bin/apachectl start
在IE中访问
IE中会出现:
handler:text/html
query string:query=yy
filename:/usr/local/apache2.2.4/htdocs/index.html
说明该module运行成功。
把上面的module简单解释一下。
所有的apache module都必须是这个结构体,里面要定义各个内容。
/* module structure */
module AP_MODULE_DECLARE_DATA c_module = {
STANDARD20_MODULE_STUFF,
NULL, /* dir config creater */
NULL, /* dir merger — default is to override */
NULL, /* server config */
NULL, /* merge server configs */
//上面4项都是定义httpd.conf中命令的作用的
NULL, /* command apr_table_t */ //定义在httpd.conf中添加的命令,和各命令的处理函数
register_hooks /* register hooks */ //hooks,定义什么时候执行我们这个module的相关函数
};
ap_hook_handler(c_handler, NULL, NULL, APR_HOOK_MIDDLE);
表示在处理内容请求时调用我们函数–c_handler