以前在本机测试BT程序的时候需要支持IPv6的Apache,但是官方网站下载的Windows平台的Apache并不支持IPv6,Google了一下,发现http://win6.jp/上有Apache的IPv6补丁,但是从域名看是小日本的,抵制;后来发现这个论坛上有别人编译好的支持IPv6的Apache,只可惜我不信任别人编译的;在后来看到XAMMP套件的Apache是支持IPv6的,但是XAMMP太大了,我也不喜欢。于是研究了一下怎么在Windows平台下编译支持IPv6的Apache,主要参考了官方的编译教程(英文的),然后自己修改了一下源码,使之能支持IPv6。
废话说完了,正式开始:
- 安装Visual Studio 2008,这个,不用介绍了吧
- 安装Perl和awk:下载ActivePerl并安装;下载awk95.exe,重命名为awk.exe并复制到C:\Windows目录下
- 编译zlib库:到官网下载zlib源码,解压至C:\build\zlib,运行Visual Studio 2008命令行,在zlib目录下运行命令
nmake -f win32\Makefile.msc
- 编译OpenSSL库:到官网下载OpenSSL源码,解压至C:\build\openssl,运行Visual Studio 2008命令行,在openssl目录下运行命令
perl Configure VC-WIN32
ms\do_ms
nmake -f ms\ntdll.mak
- 编译Apache:到官网下载Apache源码,解压至C:\build\httpd,复制之前编译好的zlib和OpenSSL的文件夹至httpd\srclib目录下,打开httpd\srclib\apr\include\apr.hw,将
#define APR_HAVE_IPV6 0
修改为
#define APR_HAVE_IPV6 1
运行Visual Studio 2008命令行,在httpd目录下运行命令
nmake /F Makefile.win INSTDIR="C:\Apache" installr
其中INSTDIR为希望安装Apache的目录
喝杯咖啡回来以后,支持IPv6的Apache就编译好了,进入C:\Apache\bin目录,运行
httpd.exe -k install
就可以把Apache注册为系统服务(windows 7下要管理员权限)