cd ~ wget http://nginx.org/download/nginx-0.8.54.tar.gz wget http://nginx.org/download/nginx-1.0.0.tar.gz
3、the H264 Streaming Module for Nginx (version 2)
復制代碼
代碼如下:
cd ~ wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz tar -zxvf nginx_mod_h264_streaming-2.2.7.tar.gz 改動 ngx_http_h264_streaming_module.c,將以下內容全部移除或注釋掉,否則會遇到 error: 'ngx_http_request_t' has no member named 'zero_in_uri'的錯誤提示 /* TODO: Win32 */ if (r->zero_in_uri) { return NGX_DECLINED; }
2、在編譯過程中,注意事項:(引用 :http://www.tech126.com/cygwin-nginx/) 1、prefix的選項,如果我們指定–prefix=/cygdrive/d/nginx,那么最后脫離Cygwin環境運行,會發現root無法指向其它磁盤上的目錄,所以這里使用了相對路徑,而且指定了可執行文件nginx在根目錄下,而不是默認的sbin/nginx 2、FD_SETSIZE=4096,網上都說了,是將select模式的最大worker_connections加大,如果不加此參數將可能出現以下的錯誤提示, [emerg] 2496#0: the maximum number of files supported by select() is 64的錯誤提示,這表示FD_SETSIZE的值比nginx配置文件中worker_connections指令所指定的值,你可以把nginx.conf里的worker_connections選項改小一些,比如44,加了–with-cc-opt=”-DFD_SETSIZE=4096”后就不會碰到這問題 3、編譯mod_passport之前,最好執行dos2unix.exe mod_passport/config轉換一下格式 4、編譯mod_passport時,會報錯:cc1: warnings being treated as errors,需要修改objs/Makefile文件,把其中的-Werror刪除即可 5、編譯成功后,在Cygwin下運行正常,但如果要脫離Cygwin,需要從cygwin/bin下拷貝cygwin1.dll,cyggcc_s-1.dll,cygz.dll,cygcrypto-0.9.8.dll,cygssl-0.9.8.dll,cygpcre-0.dll,cygcrypt-0.dll這幾個dll到nginx目錄下 6、最后,不使用Cygwin,在普通Dos下運行nginx時,會報錯:emerge: getpwnam("nobody") fail。這也是最令我郁悶的一個錯誤了,看了網上很多人的帖子,似乎都很順利就成功了,但用我的Cygwin編譯出來的nginx,就一直報這個錯誤,嘗試不加第三方模塊,指定user為本機的administrator,依然報錯…郁悶了很久之后,最后還是找到nginx源碼中相關邏輯,做如下修改: nginx-0.8.54/src/core/nginx.c,把getpwnam和getgrnam相關邏輯判斷注釋掉 (1022-1044) nginx-0.8.54/src/os/unix/ngx_process_cycle.c把setgid和setuid相關邏輯判斷注釋掉 (883-903) 最后重新編譯運行,才成功了