Nginx 在 windows 环境下编译

参考文档: https://nginx.org/en/docs/howto_build_on_win32.html

1. 环境准备

1.1 安装perl

安装地址: https://strawberryperl.com/, 选择msi安装程序安装即可。

1.2 安装sed for windows

从 sourceforge 上下载安装程序。
https://sourceforge.net/projects/gnuwin32/files/sed/
执行安装程序结束后,需要将安装包bin目录配置到环境变量下。

1.3 安装MSYS2

参考 https://www.msys2.org/ 下 installation 内容下载安装即可。

1.4 安装visual studio 2022环境

过程省略,主要使用其中的nmake环境。

1.5 下载源码、依赖库

  1. 源码下载: http://hg.nginx.org/nginx 网站下下载zip包;
  2. pcre2 源码下载地址:https://www.pcre.org/(注:部分版本需要下载pcre https://sourceforge.net/projects/pcre/
  3. zlib 下载地址: https://zlib.net/
  4. openssl 下载地址:https://www.openssl.org/

2. 编译

2.1 解压源码

  1. 解压nginx源码
    在这里插入图片描述
  2. 使用MSYS2 中解压zlib、openssl、pcre2
    在这里插入图片描述
 MSYS ~
$ cd /d/devPath/nginx/nginx-ee40e2b1d083/
 MSYS /d/devPath/nginx/nginx-ee40e2b1d083
$ mkdir objs
 MSYS /d/devPath/nginx/nginx-ee40e2b1d083
$ mkdir objs/lib
 MSYS /d/devPath/nginx/nginx-ee40e2b1d083
$ cd objs/lib/

在这里插入图片描述

2.2 生成MAKEFILE文件

在nginx 源码根目录下执行auto命令

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.3 \
    --with-openssl=objs/lib/openssl-3.0.12 \
    --with-openssl-opt=no-asm \
    --with-http_ssl_module

在这里插入图片描述

2.3 执行编译命令

注: 执行nmake命令需要安装好 perl 和 sed for windows

使用x86_x64 Cross Tools Command Prompt for VS 2022 命令行工具执行编译。
在这里插入图片描述
进入nginx源代码根目录并执行nmake命令。这个过程稍长一些,需要5-10分钟左右,安装成功后如图所示:
在这里插入图片描述

3. 测试nginx

安装结束后会在 objs下生成nginx.exe可执行程序。其中conf 需要从根目录下拷贝到objs下。
在这里插入图片描述
使用 nginx.exe -t -c conf\nginx.conf 或者 nginx.exe -t命令测试nginx.conf 文件,根据提示分别在根目录下手动创建logstemp 目录
在这里插入图片描述
使用 start nginx 命令启动nginx服务,服务启动成功。

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会灭火的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值