Windows上编译Nginx

前言

去年还是前年来的,我编译过Nginx。当时是照着网上文章一步一步做的,觉得并不复杂,因此也没有写记录。不过,最近工作需要再编译一个新版的。本想着一个小时搞定的事情,网上文章也找到了,也认认真真地看了,但是却足足折腾了一天。报的错误总体上就是在说我用64位的编译器在编译32位的内容什么的……,不懂!最后,发现需要修改工程里一份makefile文件才能通过64位的编译。

下载源码

下载地址http://hg.nginx.org/nginx.org

上面是下载地址,没有Mercurial 工具的可以点击zip或者gz下载。放心还没完呢,开源界很少一个包搞定一切的。还有msys,Perl(Strawberry PerlActivePerl),PCREzlibOpenSSL,名称上都要超链,点击下载吧。

msys

上面超链上的是官网(https://www.msys2.org/),国内下载可能有点慢,这里有清华的镜像地址:https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/ 和 中国科学技术大学的镜像地址:https://mirrors.ustc.edu.cn/msys2/distrib/ 我下载的是zip包,解压后没有配置,运行msys2.exe就工作了。我对msys2没有了解,不懂这东西怎么用。

Perl

这次我使用的ActivePerl。这个需要安装,我不喜欢,不过也有好处,安装时环境变量不用手动设置了。好像手动设置也不费事啊!Strawberry Perl是有zip包的,以后有机会再试吧。

OpenSSL

OpenSSL要使用1.0.xx版本的,1.1的版本编译不过的。

工程目录构建

Nginx
    auto
    conf
    contrib
    docs
    Makefile
    misc
    objs
        lib
            PCRE
            zlib
            OpenSSL
    src

64位编译修改(32位编译忽略)

打开.\auto\lib\openssl\makefile.msvc文件。

  1. 找到“VC-WIN32”替换为“VC-WIN64A”;
  2. “if exist ms\do_ms.bat”替换为“if exist ms\do_win64a.bat”;
  3. “ms\do_ms”替换为“ms\do_win64a”。

生成makefile文件

打开msys2.exe,切换到Nginx目录,然后运行下面命令。

auto/configure VC-WIN64A \
--with-cc=cl \
--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 \
--http-scgi-temp-path=temp/scgi_temp \
--http-uwsgi-temp-path=temp/uwsgi_temp \
--with-cc-opt=-DFD_SETSIZE=1024 \
--with-pcre=objs/lib/pcre-8.41 \
--with-zlib=objs/lib/zlib-1.2.11 \
--with-openssl=objs/lib/openssl-1.0.2o \
--with-openssl-opt=no-asm \
--with-select_module \
--with-http_ssl_module \
--with-http_gzip_static_module

编译

启动“x64 Native Tools Command Prompt for VS 20xx”(或者x86 Native Tools Command Prompt for VS 20xx),并且切换到Nginx目录。运行nmake,然后等待编译完成吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值