添加nginx-upload-module模塊

爲何? php

由於顯示上傳進度的須要。而PHP官方的進度支持不適用於Nginx+PHP via FastCGI。相關文章請參考使用Session來跟蹤上傳進度。該文最後的Warning表示Nginx會本身處理上傳,而PHP就只能獲得一個最終結果,不能跟蹤過程。最後一個跟帖(來自s.zarges)也給出相同的警告。這樣,就不得不找別的辦法,好比APC之類。而我選擇了nginx-upload-module。 html


關於nginx-upload-module nginx

這個模塊由vkholodkov於5年前開發,如今已經不更新N久了。其源代碼位於:https://github.com/vkholodkov/nginx-upload-module/tree/2.2。這是文檔。直接下載源代碼
git

下載完成後,解壓: github

tar xvfz nginx_upload_module-2.0.11.tar.gz

須要打補丁 shell

代碼恆久遠,八哥永流傳。多少年過去了,許多代碼變得面目全非,許多更失去了原本面目,只剩下那一砣砣的八哥,提醒咱們曾經輝煌的過往。如今的Nginx相對5年前,已經修改了不少東西,好比ngx_http_read_request_body_t已經刪除了to_write成員,而該成員被nginx-upload-module所須要。其結果就是nginx-upload-module沒法編譯。關於該問題的討論請參考這個連接。咱們要感謝這個哥們:davromaniak,他修改了nginx-upload-module,修正了錯誤,使之能夠經過編譯。這是他的關於該問題修正的博文。咱們要作的就是下載他的修改,給nginx-upload-module打補丁。 session

下載的Patch文件名爲 davromaniak.txt。 spa

打補丁使用如下命令: .net

cp darvromaniak.txt [nginx_upload_module所在目錄]  
patch ngx_http_upload_module.c davromaniak.txt

將模塊編譯進Nginx code

先從這個連接下載Nginx源碼。而後編譯:

cd nginx-1.5.8  

./configure --add-module=[nginx_upload_module所在目錄]  
make  
make install
在短暫的等待後,編譯和安裝就完成了,能夠重啓Nginx。

遇到的問題:

我使用了比較舊的nginx-upload-module(2.0),若是你使用的是新的2.2,遇到什麼問題,請自行解決。

相關文章
相關標籤/搜索