http://nginx.org/en/docs/howto_build_on_win32.html

官网上的操作说明。

官网的方法Nginx编译方法,思路是一致的,只是有几个细节地方需要调整。

需要注意以下问题:

  1. Win10 操作系统下,貌似在编译OpenSSL的时候有问题。
  2. 使用sm for Windows 作为微软的masm 的替代。

一:下载以下工具,并依次安装。

1、  下载 VS2010VS2010 SP1 (C++编译环境)VS2015也可以。

2、  MSYS-1.0.11.exe

3、  ActivePerl-5.24.2.2403-MSWin32-x64-403863.exe

4、  mercurial-4.3.1-x64.msi

5、  nasm-2.12.02rc9-installer-x64.exe

6、  sed-4.2.1-setup.exe

7、  下载配套的所需库代码PCREzlib and OpenSSL libraries sources.

并且需要确保以上工具加入到了环境变量。

二、获取Nginx源代码

打开CMD命令,切换到Mercurial安装根目录,执行命令:

    hg clone http://hg.nginx.org/nginx

下载成功后会在Mercurial安装目录下,创建nginx源代码文件夹。

三、添加依赖资源包

在nginx源代码分别创建objs\lib 文件夹,此处如此命名只是约定的习惯,可以不是这两个名称。并且将下载好的nginx-rtmp-module-master、openssl、pcre、zlib分别解压在lib文件夹下面。

以上动作可以按官网教程一样,使用MSYS使用CUI的方式。

结果如下图:

四、生成makefile文件,用于C++编译器

继续使用MSYS工具,返回到nginx源代码根目录,执行以下脚本:

auto/configure --with-cc=cl --builddir=objs --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.2k \

--with-select_module --with-http_ssl_module --add-module=objs/lib/nginx-rtmp-module

有如上三部分输出

最终结果,会在objs目录下生成Makefile文件,以及其他所依赖的代码。

五、OpenSSL的坑,

需要修改 nginx\auto\lib\openssl\makefile.msvc 文件。

将ms\do_ms 改为ms\do_nasm。

具体原因参看篇文章。

http://blog.csdn.net/felixking/article/details/51981794?utm_source=itdadao&utm_medium=referral

六、编译Nginx源码

使用VS2010命令工具,切换到Nginx根目录,执行nmake  -f objs/Makefile  命令。

【我一开始在Wi10上使用VS2015的开发者工具,结果依然有问题,具体原因没有分析出来,核心错误如下:

perl util/copy.pl "inc32\openssl\*.[ch]" "D:\Program Files\Mercurial\nginx\objs\lib\openssl-1.0.2k\openssl\include\openssl"

Destination must be a directory at util/copy.pl line 39.

推测是Win10版本都有这个异常】

最后改为Win7+VS2010。

不算漫长的等待之后,激动人心的时刻就到来了。编译成功。

七、创建运行基础文件夹

在nginx.exe所在文件夹下创建创建conf,logs,temp,tmp目录,可将nginx-rtmp-module\test下的nginx.conf文件复制到conf目录下,启动nginx,基础的RTMP流媒体服务搭建完成。

Windows下编译nginx-rtmp-module的更多相关文章

  1. windows下编译nginx+nginx_rtmp_modue(vs2013)

    阅读官方编译windows版本的方法 http://nginx.org/en/docs/howto_build_on_win32.html 我的环境 Windows 7 Ultimate 64,Vis ...

  2. Nginx (一)Windows下编译Nginx源码以及安装 nginx for windows方法步骤

    转载自: http://apps.hi.baidu.com/share/detail/11192699#content Nginx介绍: Nginx ("engine x")是一个 ...

  3. windows下编译调试nginx

    typora-copy-images-to: image windows下编译调试nginx linux使用gdb跟踪代码效率不高,在通过跟踪代码进行源码分析,与定位复杂逻辑问题时,如果有一个简单易用 ...

  4. Windows下搭建Nginx图片服务器

    在项目最开始,上传图片的时候,服务器先保存原图再使用ImageMagick生成上传图片缩略图,这种方法有很多缺点,例如生成的缩略图的大小是固定的,不能动态请求指定大小的缩略图. 虽然有非常多的图片云存 ...

  5. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  6. windows 下使用Nginx替代apache作为服务器

    说实话, 在windows下使用Nginx 着实有点不太方便, 但因项目需求, 又不想换系统(虽然可以搞个虚拟机玩), 只能用Nginx了 好了, 不多说了. 开始... 首先我用的是xampp包(A ...

  7. windows下安装nginx

    说起开发,自己感到非常惭愧,由于公司让我给<绿电侠>项目写整体架构解决方案,才开始接触nginx这个东东,突然觉得它是一把非常好的利器. 本文主要记录在windows下安装nginx,另参 ...

  8. windows 下配置 Nginx 常见问题(转)

    windows 下配置 Nginx 常见问题 因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我 ...

  9. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  10. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

随机推荐

  1. Andrew 机器学习课程笔记

    Andrew 机器学习课程笔记 完成 Andrew 的课程结束至今已有一段时间,课程介绍深入浅出,很好的解释了模型的基本原理以及应用.在我看来这是个很好的入门视频,他老人家现在又出了一门 deep l ...

  2. python 进程池(multiprocessing.Pool)和线程池(threadpool.ThreadPool)的区别与实例

    一般我们是通过动态创建子进程(或子线程)来实现并发服务器的,但是会存在这样一些缺点: 1.动态创建进程(或线程)比较耗费时间,这将导致较慢的服务器响应.  2.动态创建的子进程通常只用来为一个客户服务 ...

  3. URLs对象 blob URL

    把指向数据的URL保存到file或者blob对象里,好处就是不需要先文件读取内容然后才能用.   function createObjectURL(blob){if (window.URL){retu ...

  4. zabbix 3.2 高可用实现方式一,亲测无坑

    1.架构设计图 2.设计说明 1. 基础架构为LAMP环境,采用keepalived实现zabbix服务器高可用,保证主server的mysql或者httpd宕掉后能切换到从server. 2.数据库 ...

  5. 多线程环境下非安全Dictionary引起的“已添加了具有相同键的项”问题

    问题: 代码是在多线程环境下,做了简单的Key是否存的判断, 测试代码如下: public class Program { static Dictionary<string, Logger> ...

  6. 三星R428 内存不兼容金士顿2G DDR3

    京东上买了个金士顿2G DDR3, 回家装上之后发现不兼容, 原机带的是三星DDR3 1066的2G条子,买的是 金士顿DDR3 2G 1333的条子,结果单独插任何一根都好使,两个插槽均无问题,但是 ...

  7. winscp连接虚拟机Linux被拒绝的问题解决方案

    输入了正确的账号密码还出现这个错误 我们需要在虚拟机中配置一下,改成这样就行了

  8. 2017年当下最值得你关注的前端开发框架,不知道你就OUT了!

    近几年随着 jQuery.Ext 以及 CSS3 的发展,以 Bootstrap 为代表的前端开发框架如雨后春笋般挤入视野,可谓应接不暇. 在这篇分享中,我将总结2017年当下最值得你关注的前端开发框 ...

  9. Android 之旅开始了!先自我了解下Android与Linux之间的关系

    Android是在Linux2.6的内核基础之上运行的,提供核心系统服务:安全.内存管理.进程管理.网络组.驱动模型.内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次.但是严格来说它 ...

  10. 这次真的忽略了一些ActiveMQ内心的娇艳

    好久没总结了,内心有点空虚了,所以今天主要给园里的朋友们分享一点儿这几天使用ActiveMQ过程中踩过的小坑,虽然说这东西简单易用,代码几行配置也就几行,问题不大但是后果有点严重,所以就要必要总结一下 ...