首页 > 代码库 > windows环境下使用apxs编译添加apache模块

windows环境下使用apxs编译添加apache模块

windows环境下使用apxs编译添加apache模块


简介说明:本文使用mod_limitipconn模块为例。

环境:

windows7 x86系统

apache 2.4.18

目标:

windows环境下,利用mod_limitipconn0.24源码、apxsapache2.4.18添加mod_limitipconn模块。

分析:

limitipconn模块最新版已经支持apache2.4了。但是没有编译好的对应版本。因此需要自己动手编译模块。在windows下要实现这个目标,需要安装以下几个软件:apxswindows版)、perlwindows版本的,这是为了可以安装apxs)、vc++6.0(要安装版的。这个是apxs编译c源码模块调用使用的。也可以使用其他的软件)。


下载地址:

apxs

http://www.apachelounge.com/download/additional/

perl(ActivePerl )

http://www.activestate.com/activeperl/downloads

vc++6.0

要安装版。绿色版编译时出错。


步骤:


安装perlActivePerl),直接默认安装就好。安装完成请确认windows环境变量的path是否添加了perl的文位置。没有自动添加,请手工追加。如图:

技术分享

安装vc++6.0,这个一定使用安装版的,否则编译时会报错。我的安装目录:D:\Program Files\Microsoft Visual Studio,安装完成确认D:\Program Files\Microsoft Visual Studio\VC98\Bin\cl.exe,双击是否报错。(若报错,请根据报错信息修复。我的报错:mspdb60.dll文件丢失,下载该文件放到cl.exe所在目录)。并把“D:\Program Files\Microsoft Visual Studio\VC98\Bin\”添加到环境变量path中。如图:

技术分享

安装apxs

首先说明:apache安装目录:D:\wamp\bin\apache\apache2.4.18\

运行windows的命令提示符(即cmd),并进入apxs安装包文件所在位置。运行以下命令:“perl Configure.pl --with-apache2=D:\wamp\bin\apache\apache2.4.18--with-apache-prog=httpd.exe”。如图:

技术分享

注:会生成D:\wamp\bin\apache\apache2.4.18\build\config_vars.mk文件和D:\wamp\bin\apache\apache2.4.18\bin\apxs.bat文件。

修改D:\wamp\bin\apache\apache2.4.18\build\config_vars.mk,效果如下:

CC = cl

LD = link

CPP = cl -nologo -E

LDFLAGS = kernel32.lib ws2_32.lib apr-1.lib aprutil-1.lib libapr-1.lib libapriconv-1.lib libaprutil-1.lib libhttpd.lib mod_dav.lib xml.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"D:\wamp\bin\apache\APACHE~1.18\lib"


注:cllink是调用D:\Program Files\Microsoft Visual Studio\VC98\Bin\下的cl.exelink.exe。其中LDFLAGS=...”D:\wamp\bin\apache\APACHE~1.18\lib采用默认的就可以(”D:\wamp\bin\apache\APACHE~1.18\lib是我的默认的。其实就是apache安装目录下的lib文件夹的目录)。若LDFLAGS项目没有更改编译模块时会报错。


在命令提示符中,运行“VCVARS32”,如图:

技术分享

windows环境变量中path,追加D:\wamp\bin\apache\apache2.4.18\bin\,如图:

技术分享

在命令提示符中进入mod_limipiconn源码所在目录,并运行如下命令:

apxs -i -c -a mod_limitipconn.c

如图:

技术分享


重要说明:

会在D:\wamp\bin\apache\apache2.4.18\lib\生成mod_limitipconn.lib文件。

会在D:\wamp\bin\apache\apache2.4.18\modules\生成mod_limitipconn.so文件。

每次追加windows环境变量path下的内容,需要重新运行命令提示符才能生效(或者说才能在命令提示符中应用)。

编译时提示“windows.h”相关错误,请检查D:\wamp\bin\apache\apache2.4.18\build\config_vars.mk文件中的LDFLAGS是否修改,若已经修改,请使用安装版的vc++6.0


涉及的文件位置罗列:

apache2.4.18安装位置:D:\wamp\bin\apache\apache2.4.18

vc++6.0安装位置:D:\Program Files\Microsoft Visual Studio

cl.exelink.exeVCVARS32 .bat所在位置:D:\Program Files\Microsoft Visual Studio\VC98\Bin\

apxs安装后所在位置:D:\wamp\bin\apache\apache2.4.18\bin\

config_vars.mk所在位置:D:\wamp\bin\apache\apache2.4.18\build\config_vars.mk

perl安装位置:C:\Perl\

mod_limitipconn源码所在位置:D:\mod_limitipconn\


windows环境下使用apxs编译添加apache模块