PHP FPM Nginx无法上传超过2 GB的文件

时间:2017-02-09 18:58:14

标签: php nginx upload limit fpm

我正在使用带有php 5.6和nginx / php fpm的64 BIT CENT OS。

我在VPS中运行了一个自己的云实例,一切运行顺利,但是任何大小超过2 GB的文件都没有上传并出现网关错误,我调整了所有设置,如上所述在

https://github.com/owncloud/documentation/wiki/Uploading-files-up-to-16GB

所有的值都设置好了,只要php-fpm将文件写入临时目录,它就会完全停止在2 GB,有时是2.1或2.2,但不会在那之后出现问题,因为有时如果我上传7 GB的文件,它上传了几个小时,进度条没有任何问题,直到100%然后停止,检查tmp文件夹,我可以看到,

cd / var / www / owncloud / temp /

[root @ files temp] #ll -ah

-rw ------- 1 nginx nginx 2.2G 2月9日17:46 phpyHKRQD

我在这里非常困惑,因为为什么php会在64位环境中停留在2 GB。

3 个答案:

答案 0 :(得分:1)

对于非常大的文件,最好实现一个分块上传器。那要好得多。

有许多很酷的库可以解决你的问题。

http://www.plupload.com/

完全上传一个位文件会导致很多问题。

答案 1 :(得分:0)

您的64位系统上可能安装了32位PHP。您可以通过运行

进行检查
php -r 'echo PHP_INT_MAX;'  

我的64位arch,但是32位PHP echos 2147483647和我的64位arch with 64 bit PHP echos 9223372036854775807

答案 2 :(得分:0)

感谢您的建议,问题得到了解决。

其实我错过了设置,

fastcgi_request_buffering off

如上所述, https://doc.owncloud.org/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html

现在上传大于2 GB的文件。