又有人在windows下编译nginx – 为什么那么多人喜欢自残呢?
官网教程
Building nginx on the Win32 platform with Visual C
本文基本上就是对着做,但需要对其进行微调 – 不爽吗?咬我啊!!
准备工具
系统: winxp sp3 32位, 例如你可以用个虚拟机什么的安装一个winxp
Subversion 或者你喜欢的svn客户端
安装必要的程序
VS2008,附带的sqlserver无需安装,也用不上
Perl,一直下一步即可
Slik-Subversion,一直就是下一步
将MSYS-CN解压到C盘
下载源码
到C:\MSYS启动msys.bat,进入msys的bash
非常重要哦, 官网的tar包是不包含windows构建文件的!!
svn co svn://svn.nginx.org/nginx/tags/release-1.3.15
cd release-1.3.15
mkdir objs
mkdir objs/lib
然后, 把pcre/zlib/openssl的源码,均解压到C:\MSYS\home\UserName\release-1.3.15\objs\lib, 即上述语句所建立的文件夹,其中UserName是你的用户名.
生成构建脚本
依然在msys bash下.
cd release-1.3.15
auto/configure --with-cc=cl --builddir=objs --prefix= \
--conf-path=conf/nginx.conf --pid-path=logs/nginx.pid \
--http-log-path=logs/access.log --error-log-path=logs/error.log \
--sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp \
--http-proxy-temp-path=temp/proxy_temp \
--http-fastcgi-temp-path=temp/fastcgi_temp \
--with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre-8.32 \
--with-zlib=objs/lib/zlib-1.2.7 --with-openssl=objs/lib/openssl-1.0.1e \
--with-select_module --with-http_ssl_module --with-ipv6
语句比较长,可以写到build.bat中,然后执行 ./build.bat
编译
总有要编译啦,哇哈哈. 在开始菜单找VS2008的VS2008命令行,启动之
执行下面的语句
C:
cd \MSYS\home\UserName\release-1.3.15\
nmake -f objs/Makefile
你很快就会发现报错了,说找不到某某头文件.
用你喜欢的编辑器打开 C:\MSYS\home\UserName\release-1.3.15\objs\lib\pcre-8.32\config.h
找到并注释掉(加//):
#ifndef HAVE_INTTYPES_H
#define HAVE_INTTYPES_H 1
#endif
#ifndef HAVE_STDINT_H
#define HAVE_STDINT_H 1
#endif
然后再执行就成功了:
nmake -f objs/Makefile
好吧,祝你好运!!
C:\MSYS\home\Administrator\release-1.3.15>nginx.exe -V
nginx version: nginx/1.3.15-http://wendal.net
TLS SNI support enabled
configure arguments: --with-cc=cl --builddir=objs --prefix= --conf-path=conf/ng
nx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-p
th=logs/error.log --sbin-path=nginx.exe --http-client-body-temp-path=temp/clien
_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp
fastcgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre-8.32 --w
th-zlib=objs/lib/zlib-1.2.7 --with-openssl=objs/lib/openssl-1.0.1e --with-selec
_module --with-http_ssl_module