参考:Nginx Windows下编译和安装_window 如果编译安装nginx-CSDN博客
参考:
Building nginx on the Win32 platform with Visual C
1.安装MSYS2
参考 MSYS2 下 installation 内容下载安装即可。
2.下载依赖库:
PCRE:Download PCRE
ZLIB: zlib Home Site
OPENSSL:[ Downloads ] - /source/index.html
3.在nginx源码根目录下创建objs文件夹,再在objs下创建lib
4.将pcre-8.45.tar.gz、zlib-1.3.1.tar.gz、openssl-3.3.1.tar.gz解压到lib目录下,可以直接手动解压到该目录
5.打开安装的msys2 msys,进入到nginx根目录下:
cd D:\wf\work\nginx-1.26.1\nginx-1.26.1
6.
输入如下配置命令后回车:(注意pcre,zlib,openssl版本要与你的一致)
./configure --with-pcre=objs/lib/pcre-8.45 --with-zlib=objs/lib/zlib-1.3.1 --with-openssl=objs/lib/openssl-3.3.1 --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-openssl-opt=no-asm \
--with-http_ssl_module
开始会有一个错误:
需要修改auto/cc/msvc的版本号 NGX_MSVC_VER=19.20,
7.打开nginx根目录下的auto/cc/msvc,发现没有写NGX_MSVC_VER版本号,因我的是vs2019,所以写上19.20
vs版本号对应可参考如下:
根据你自己的实际vs版本号填写,只有填写成功,后面nmake才能编译成功。
重新运行6的配置命令,完成如下:
可以看到根目录下的objs下已经生成了makefile文件:
8.以管理员方式打开vs的命令行窗口,因为我上面下的都是64位依赖库,所以打开64位的命令窗口:
进入到nginx根目录,输入如下命令后回车,就开始编译:
nmake -f objs/Makefile
等待几分钟后编译完成,可能会弹出sed错误,不用管他。
此时objs目录下已经生成了nginx.exe,说明已经编译成功。