Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大型PHP上传的内存限制_Php_Apache_Upload_Nginx - Fatal编程技术网

大型PHP上传的内存限制

大型PHP上传的内存限制,php,apache,upload,nginx,Php,Apache,Upload,Nginx,我有一个应用程序。它允许您通过ajax一次上载多个文件。它适用于大文件,但一旦达到2gb以上,我就会出现如下错误: [Fri Feb 01 11:22:56 2013] [error] [client x.x.x.x] PHP Fatal error: Out of memory (allocated 2331770880) (tried to allocate 1165449891 bytes) in Unknown on line 0, referer: ... 在我的php.ini中,

我有一个应用程序。它允许您通过ajax一次上载多个文件。它适用于大文件,但一旦达到2gb以上,我就会出现如下错误:

[Fri Feb 01 11:22:56 2013] [error] [client x.x.x.x] PHP Fatal error:  Out of memory (allocated 2331770880) (tried to allocate 1165449891 bytes) in Unknown on line 0, referer: ...
在我的php.ini中,我有以下配置:

post_max_size = 53687091200M
upload_max_filesize = 53687091200M
max_input_time = -1
memory_limit = -1
max_execution_time -1
max_file_uploads = 20
据我所知,这应该足以处理3GB的上传。但几乎每一次尝试,我都会犯这些错误。我已经和我的副总裁的支持人员谈过了,他们说一切看起来都很好,应该能够处理

我有一个nginx反向代理设置,这有点帮助,但还不够。我错过什么了吗


有没有办法用PHP减轻HTTP的负担?我测试了Java应用程序,它们的性能非常出色,但(不幸的是)我需要保持UI的灵活性。

如果您正在上载非常大的文件,您可能希望在将其传递给PHP之前对其进行“代理”。我的经验是,长寿命的PHP线程可能会意外爆炸,PHP有时会在大内存分配方面遇到问题

看一看,它将在将文件传递到上游服务器(本例中为PHP)之前将文件缓冲到磁盘,并提供一种监控和报告进度的机制


如果您仍然有问题,您可以使用;只需将文件直接转储到磁盘上需要的位置,并通知PHP它的位置。

PHP不适合上传多GB文件。您最好使用Java,然后让PHP在完成后处理它。有什么建议吗?有什么我可以用的,我不知道,“隐藏在背景中”吗?要仍能显示漂亮的UI,请执行以下操作:)在通过ajax上传文件时,您是否尝试过拆分文件?也许可以解决保持上传大小的问题实际上,HTTP不适合多GB文件上传。