美文网首页
2023-11-06 Windows 编译 nginx-http

2023-11-06 Windows 编译 nginx-http

作者: 颈椎以上瘫痪 | 来源:发表于2023-11-05 10:07 被阅读0次

    背景

    项目中使用流媒体服务器,通过FFmpeg接入RTSP转码位flv在浏览器中播放,其中flv流媒体服务器是在Linux中使用nginx编译flv模块的,Linux中编译过程很容易,为了使用方便,想在Windows中使用,但是Windows中没有nginx-flv直接使用的软件包,需要自己编译,编译过程还挺麻烦的,在这里记录一下。

    准备

    软件 版本 下载地址
    nginx 1.22.0
    nginx-http-flv-module 1.2.10
    openssl 1_1_1o
    pcre 2-10.42
    zlib 1.3
    strawberry 5.32.1.1
    nasm 2.16.01
    mingw

    其中nginx、nginx-http-flv-module、openssl、pcre、zlib是需要编译到软件中的模块
    strawberry、nasm、mingw是编译需要使用到的工具
    还有一个就是执行编译命令时,命令行是不行的,需要在VS中开启命令行,说是要使用到很多系统环境变量,普通命令行引用不到,所以我觉得编译环境还是太大了,如果不是我的电脑已经有VS了,我估计都想放弃,毕竟VS太大了。

    nginx不要在官网下载,官网下载的是编译好的运行文件,这里我们需要下载源码

    nginx-http-flv-module请下载1.2.10版本,我试过1.2.11和1.2.8,都编译失败了,失败的错误都是在nginx-http-flv-module中,当然我也不确定是不是其它模块冲突,反正我就是更换了nginx-http-flv-module版本最后才能编译成功。

    strawberry下载的时候请下载安装包,不要下载绿色的zip包,我下载的zip,在主机中解压使用,并且按照常规方式配置了环境变量,但是使用过程中还是会提示找不到strawberry的错误,寻思着也没错啊,最后实在看不出来啥问题,将解压的删掉,使用安装包安装就能通过编译,重新看了一下环境变量,看到里面安装strawberry软件时相关环境变量有3个。。。

    其它的下载我这里使用的版本都没啥问题

    过程

    安装MinGW后需要执行一段脚本,可以写在一个.bat执行文件中

    auto/configure --with-cc=cl --builddir=build/output --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-flv.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=build/3rdlib/pcre2-10.42 --with-zlib=build/3rdlib/zlib-1.3 --with-openssl=build/3rdlib/openssl-OpenSSL_1_1_1o --with-select_module --with-http_ssl_module --add-module=build/3rdlib/nginx-http-flv-module-1.2.10
    

    在MinGW执行.bat文件,会生成Makefile文件,然后在VS命令行中执行编译命令,我编译时失败了很多次,最后更换各软件版本,对照上述版本通过了编译。

    相关文章

      网友评论

          本文标题:2023-11-06 Windows 编译 nginx-http

          本文链接:https://www.haomeiwen.com/subject/lpyzidtx.html