文章目录

  • windows 源码编译 nginx,可以加入功能模块
    • 1. 依赖
    • 2. 步骤
      • 2.1 下载源码
      • 2.2 解压依赖
      • 2.3 配置环境变量
      • 2.4 配置和编译
    • 3. 测试
    • 4. 参考

windows 源码编译 nginx,可以加入功能模块

1. 依赖

  • Strawberry Perl:配置环境变量,参考后文2.3节
  • GnuWin32-sed:配置环境变量,参考后文2.3节
  • OpenSSL-Win32:配置环境变量,参考后文2.3节,这个和下面的依赖的openssl不太一样,这个是可执行源文件,下面是源代码,下面的是nginx编译时需要依赖的源文件
  • PCRE, zlib and OpenSSL libraries sources:设置编译依赖
  • nmake:编译工具,一般在VS中都有,设置环境变量就可以,我的是VS2017,路径是 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\nmake.exe
  • rc.exe:编译工具,一般在 Windows Kits 中,我的路径是C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\rc.exe

如果参考 nginx 官网文档的话还需要 MSYS 和 Mercurial client,但是我编译时候没用,后文附官方文档链接

2. 步骤

2.1 下载源码

直接去 http://hg.nginx.org/nginx 上下载源码,解压之后的文件目录结构是:

2.2 解压依赖

在解压的文件夹中新建 objs\lib 文件夹,然后将上面下载的依赖 openssl zlib PCRE 三个依赖以及你自己想要编译的模块比如我的是 nginx-http-flv-module 解压之后放到 objs\lib 文件夹中,如下:

2.3 配置环境变量

  • 设置 Strawberry Perl GnuWin32-sed 环境变量
  • OpenSSL-Win32
  • nmake
  • rc.exe

2.4 配置和编译

  • configure:回到 nignx 主目录,(其中的prefix路径可以稍微改改,但是最好不要改,windows路径和linux不太一样
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.40 \--with-zlib=objs/lib/zlib-1.2.13 \--with-openssl=objs/lib/openssl-1.1.1s \--with-openssl-opt=no-asm \--with-http_ssl_module \--add-module=objs/lib/nginx-http-flv-module
  • make:回到 nignx 主目录
nmake -f objs\Makefile

如果出现比如rc'不是内部或外部命令,也不是可运行的程序'等错误就是环境变量没配好

3. 测试

编译成功之后会在objs文件夹下出现nginx.exe可执行文件

另外运行nginx.exe出现创建文件失败错误的话,比如[alert] could not open error log file: CreateFile和 [emerg] 10888#16720: CreateDirectory()
只需要在nginx主目录下创建相应的文件夹,比如常见的文件有 temp logs

4. 参考

  • http://nginx.org/en/docs/howto_build_on_win32.html
  • https://www.dapan.cc/article/2022/11/18841/

Windows 源码编译 nginx (加入nginx-http-flv-module)相关推荐

  1. LNMP架构的搭建--源码编译(MYSQL,PHP,nginx)

    1.基础知识 1. LNMP架构: LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写.L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指P ...

  2. windows源码编译PHP7.1

    因为最近在研究PHP内核以及需要写一些PHP拓展,而且windows上关于php7.x源码编译安装的资料比较少,所以整合一下,这篇东西就出来了. 本文章所使用到的工具: [ php-7.1.11-sr ...

  3. nginx 源码编译、安装

    nginx 源码编译安装 下载Nginx安装包,Nginx 官网下载,并解压 cd /usr/local/src wget http://nginx.org/download/nginx-1.21.5 ...

  4. Linux LNMP源码架构部署 | Nginx服务 | Mysql服务 | php服务 | 论坛源码编译安装 | 超详细

    | Nginx服务 | Mysql服务 | php服务 | 论坛源码编译安装 | ➤安装 Nginx 服务 ➤1.关闭防火墙和安全机制 ➤2.卸载自带的httpd服务 ➤3.安装依赖包 ➤4.创建运行 ...

  5. 最好用的Redis Desktop Manager 0.9.3 版本下载 以及源码编译教程

    文章目录 一.前言 二.编译教程 2.1 [redis destop manager 的源码地址](https://github.com/uglide/RedisDesktopManager) 2.2 ...

  6. LNMP架构的搭建——源码编译(PHP,nginx,Mysql)

    一.源码编译 在企业中,我们常常是需要什么模块才会添加什么模块,而源码编译就可以让我们按需安装. yum安装的优缺点: yum安装的优点:安装东西,方便快捷,特别是不用考虑包依赖. yum安装的缺点: ...

  7. nginx源码编译、负载均衡及模块的扩展

    1.nginx源码编译 实验环境: iptables和selinux关闭 redhat6.5 nginx:test1: 172.25.1.11 [root@test1 ~]# ls nginx-1.1 ...

  8. Nginx 源码编译安装

    Nginx 源码编译安装环境 Centos7 Nginx1.8.1    下载地址:http://nginx.org/download/ 选择自己想要的版本 我这边使用1.8.1,下载地址:http: ...

  9. LNMP架构详解(2)——Mysql、PHP、Nginx源码编译过程

    前言 本文将介绍LNMP架构中Mysql.PHP.Nginx的源码编译过程:这时有人不仅会问:在我们使用的Linux系统中,可以从yum源中获得mysql.php,为什么要进行如此漫长复杂的过程进行编 ...

最新文章

  1. 集线器、路由器与交换机
  2. 企业联合体的形式_鼓掌!费县新增6家市级农业产业化联合体
  3. 第八次课作业(采购管理、信息与配置管理)
  4. AFN中请求序列化的设置
  5. python通过内置函数测试对象类型_Python的内置函数
  6. kafka 数据可靠性深度解读
  7. linux升级了npm怎么还原,linux下升级npm以及node
  8. 反射 字段_巧用 Protobuf 反射来优化代码,拒做 PB Boy
  9. java连接mysql数据库时出现乱码_java连接mysql数据库中文乱码问题
  10. 在分页后web报表的最后一页补足空行的方法
  11. 有MIMIC数据却不知道从何开始?从DIAGNOSES_ICD表开始(五)
  12. php聊天室系统,PHP教程实例:用PHP打造动态聊天室系统
  13. Ubuntu 20.04.2 LTS安装 最新版 微信(wine)
  14. 计算机外存储器有哪四个,计算机外存储器有哪些
  15. 经济订货批量(EOQ)模型及有计划的延期交货_库存管理基础
  16. 全息投影马戏团,好有爱的科技呀~
  17. python模糊神经网络预测_一种基于模糊神经网络的化学分子生物毒性预测模型算法的制作方法...
  18. informatica 许可_安装Informatica9.5.1
  19. Jaspersoft Studio----TIB_js-studiocomm_6.16.0_windows_x86_64.exe-20210422最新版
  20. 【CANoe之CAPL基础学习_如何正常在总线上中发送CAN消息】

热门文章

  1. 如何实现电脑通过手机上网?1分钟搞定!
  2. 如何下载安装ubuntu系统
  3. IBM小型机特性简介
  4. windows计划任务定时任务
  5. 圆锥的表面积和体积计算
  6. unzip:unzip解压文件到指定目录
  7. Unity两点距离计算
  8. 递归实现二叉树的前序遍历
  9. python中怎么赋值一个数为负无穷_python里面正无穷和负无穷问题?
  10. 整理:学术论文发表过程中的审稿人意见答复技巧