PHP官方进度支持不适用于Nginx+PHP通过FastCGI。相关文章请参考使用Session跟踪上传进度。文末的Warning表示Nginx会自行处理上传,而PHP只能获取最终结果,无法追踪过程。最后一个线程(来自s.zarges)也给出了同样的警告。这样我们就得想其他办法了,比如APC之类的。另一个选择是nginx-upload-module。关于nginx-upload-module这个模块是vkholodkov5年前开发的,已经很久没有更新了。其源代码地址。这是文档。直接下载源代码。下载完成后解压:tarxvfznginx_upload_module-2.0.11.tar.gz需要打补丁,代码长存,BUG长传。多少年过去了,很多代码变得面目全非,很多bug已经失去了本来面目,只剩下成堆的bug,提醒着我们曾经辉煌的过去。与5年前相比,Nginx修改了很多东西。比如ngx_http_read_request_body_t删除了nginx-upload-module需要的to_write成员。导致nginx-upload-module无法编译。有关此问题的讨论,请参阅此链接。感谢这位小伙伴:davromaniak,他修改了nginx-upload-module,修复了错误,可以编译通过。这是他关于修复的博客文章。我们所要做的就是下载他的更改并修补nginx-upload-module。下载的补丁文件名为davromaniak.txt。使用以下命令打补丁:cpdarvromaniak.txt[nginx_upload_module所在目录]patchngx_http_upload_module.cdavromaniak.txt将模块编译成Nginx先从这个链接下载Nginx源码。然后编译:cdnginx-1.5.8./configure--add-module=[nginx_upload_module所在目录]makemakeinstall稍等片刻,编译安装完成,重启Nginx即可。请注意,我使用较旧的nginx-upload-module(2.0)。如果您使用的是新的2.2,遇到什么问题请自行解决。
