最近学习windows下apache模块开发,在网上找了很多资料,发现都不是很全,经过一天的折腾,终于搞定,现贡献出来供大家一起学习:)
1.安装apache 安装包 httpd-2.2.21-win32-x86-no_ssl.msi
一定要custom全部安装,否则就不会有include和lib目录
2.配置apxs
1)安装apxs 安装包apxs_win32
2)安装Strawberry Perl 安装包strawberry-perl-5.16.3.1-32bit.msi
3)进入dos命令提示符,转到apxs安装目录下,输入perl Configure.pl,按要求填写apache的安装目录...apache2.2和命令名称“httpd.exe”
4)通过上一步,就会在apache2.2in下生成apxs命令,并且在apache2.2目录下生成了build目录
5)修改在apache2.2下build目录中的config_vars.mk文件
将CC = gcc 的gcc改为cl.exe ,LD = g++的g++改为link.exe,CPP = gcc-E的gcc-E删掉
6)设置apxs的路径为环境变量,以放便在不进入具体安装目录下运行apxs
3.编译apache模块
1)运行Visual Studio 2008 命令提示(在开始的Microsoft Visual Studio 2008下可以找到)
2)运行apxs -g -n helloworld(helloworld为模块名),会生成一个叫helloworld的目录和模板代码(一般放在user目录下)
3)进入helloworld目录,编辑mod_helloworld.c(这就是我们要开发的内容)
4)运行apxs -c -i -a mod_helloworld.c libapr-1.lib libaprutil-1.lib libapriconv-1.lib libhttpd.lib,生成mod_helloworld.so
5)将mod_helloworld.so拷贝到Apache2.2modules下
6)修改Apache2.2confhttpd.conf,在末尾加上
LoadModule helloworld_module modulesmod_helloworld.so
<Location /helloworld>