在Windows下Build Nginx 包含 RTMP

因為某個特殊原因需要Windows上的Nginx,而且Nginx要有RTMP Server,然後又失敗好久所以紀錄一下怎麼搞。

1.首先要有編譯器,第一關就這樣來了,微軟的網站找不到Visual Studio 2010的下載點了!可是根據nginx的編譯手冊維基百科的Visual Studio條目來看,我們只能用8.0(2005)跟10.0(2010)來編譯。找了很久在別的網站終於找到Visual Studio 2010 ISO檔下載點,記得安裝Visual C++ 2010就好,編譯nginx只需要它,其他都不用。

2.再來要取得程式碼,請千萬不要下載release的程式碼,裡面少很多東西保證在Windows下編譯失敗,安裝mercurial請到mercurial新的官網下載,nginx手冊裡面的連結是壞的。

3.根據nginx的編譯手冊顯示,我們要把Visual C++編譯器的環境變數丟進去執行環境,因為先進去minGW再加入vcvarsall.bat裡面的環境變數太麻煩了,所以我的作法是:先打開cmd。
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
"C:\MinGW\msys\1.0\bin\bash.exe" -l

4.再來要下載pcre、zlib、openssl的原始碼,這個不難但是小心pcre不要抓到pcre2就好。

5.產生Makefile,這裡又有學問了:
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 \
--with-cc-opt=-DFD_SETSIZE=1024 \
--with-pcre=objs/lib/pcre-8.39 \

--with-zlib=objs/lib/zlib-1.2.8 \
--with-openssl=objs/lib/openssl-1.0.2h \

--with-select_module --with-http_ssl_module --with-ipv6 \
--add-module=../nginx-rtmp-module-master \
--with-openssl-opt=no-asm

藍字來自nginx的編譯手冊橘字來自RTMP模組的說明紅字來自這個編譯好的GitHub倉庫,那個紅字不講誰知道要下這個才能編過啦!!

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *