《在Windows上编译Nginx》视频教程
官方编译说明
Building nginx on the Win32 platform with Visual C
环境准备
1. Microsoft Visual Studio(Microsoft Visual C 编译器),下载地址:https://visualstudio.microsoft.com/zh-hans/。
2. Git(备用),下载地址:https://git-scm.com/。
3. MSYS2,下载地址:https://www.msys2.org/。
4. Perl,编译OpenSSL时需要,编译出来的Nginx支持SSL。ActivePerl or Strawberry Perl。
5. PCRE, zlib and OpenSSL。
MSYS2、Strawberry Perl、PCRE、zlib、OpenSSL资源包https://download.csdn.net/download/lk13962517093/87490251
下载源码
源码地址:http://hg.nginx.org/nginx/
通过界面zip可以下载源码包,下载后进行解压,然后把pcre2-10.39.tar.gz、zlib-1.2.11.tar.gz、openssl-1.1.1m.tar.gz解压后的源码包目录。
编译
使用MSYS2配置
进入Nginx源码目录,直接执行以下命令对3个依赖包进行解压操作。
mkdir objs
mkdir objs/lib
cd objs/lib
tar -xzf ../../pcre2-10.39.tar.gz
tar -xzf ../../zlib-1.2.11.tar.gz
tar -xzf ../../openssl-1.1.1m.tar.gz
然后输入以下配置指令进行配置:
auto/configure \
--with-cc=cl \
--with-debug \
--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/pcre2-10.39 \
--with-zlib=objs/lib/zlib-1.2.11 \
--with-openssl=objs/lib/openssl-1.1.1m \
--with-openssl-opt=no-asm \
--with-http_ssl_module
配置过程中,可能会提示错误:
这个是MSVC版本识别错误导致,直接打开 auto/cc/msvc文件,
对其进行编辑,根据注释说明和本地实际安装的MSVC编译器情况,设置版本号,如下(添加NGX_MSVC_VER=19.00,不要输入空格):
使用MSVC编译
使用Microsoft Visual Studio的编译工具中的“适用于 VS 2017 的 x86_x64 兼容工具命令提示”这个工具进行编译。编译成功后,会在objs文件夹生成Nginx.exe文件。
针对编译过程最后提示的sed命令缺少的问题,可以添加Git下的 \usr\bin 路径添加到系统环境变量的Path中即可解决。