PHP大文件上载会话丢失

PHP大文件上载会话丢失,php,file-upload,amazon-web-services,amazon-ec2,jquery-file-upload,Php,File Upload,Amazon Web Services,Amazon Ec2,Jquery File Upload,我在将大文件上传到服务器上的PHP脚本时遇到问题。除了上传更大的文件外,一切正常。当上传一个大小约170MB的文件需要40-50分钟时,它曾经工作过一次,但其他时间都失败了。大约420MB的文件需要80-110分钟,但尚未成功上载。奇怪的是,我在PHP日志或Apache日志中没有发现错误,当接收和处理文件时,会话只是空的。我有所有推荐的设置 in PHP app: ini_set('max_execution_time', '8640');// 24h ini_set("session.coo

我在将大文件上传到服务器上的PHP脚本时遇到问题。除了上传更大的文件外,一切正常。当上传一个大小约170MB的文件需要40-50分钟时,它曾经工作过一次,但其他时间都失败了。大约420MB的文件需要80-110分钟,但尚未成功上载。奇怪的是,我在PHP日志或Apache日志中没有发现错误,当接收和处理文件时,会话只是空的。我有所有推荐的设置

in PHP app:
ini_set('max_execution_time', '8640');// 24h 
ini_set("session.cookie_lifetime", '0'); // 24h
ini_set("session.gc_maxlifetime", '8640'); // 24h
ini_set("default_socket_timeout", '8640'); // 24h
ini_set("error_reporting", "true");
error_reporting(E_ALL|E_STRCT);

in .htaccess
php_value memory_limit 4194304000
php_value post_max_size 3145728000
php_value upload_max_filesize 3145728000
php_value max_input_time 8640
我正在AWS上的ELB后面运行一个EC2微实例。在这个实例上,我使用Apache2.4.6和PHP5.5.3运行Ubuntu。文件通过blueimp jQuery文件上传插件上传。该插件声称可以上传高达4GB的数据。插件通过AJAX执行上传,不知道是否与问题有关

即使我没有通过ELB访问实例,也会出现此错误,换句话说,就是通过EC2实例的IP访问应用程序

在本地主机WAMP服务器上执行相同的操作时,我不会对大文件产生任何问题

我已经打印出客户端IP,这是在ajax请求启动之前,以及在完成并发现端口不同之后,PHP错误日志中每个条目打印的客户端值

Before upload start
[client 105.224.7.32:53623]

After upload complete
[client 105.224.7.32:53633]
我不知道错误是否与上载时间、上载大小、内存限制、AWS有关,甚至可能与其他完全无关的内容有关,因为我没有收到任何错误消息


这可能与错误有关吗?任何帮助或指导都将不胜感激。

这似乎与浏览器会话超时有关。我在上传文件的浏览器中添加了每60秒ping一次服务器的功能,它修复了错误。我猜在服务器上的会话似乎丢失后出现的不同端口是由于在会话过期后从浏览器发送了新的连接请求。我认为这会导致PHP为请求创建一个新会话。我遇到了类似的问题,但这是由于SSL导致的超时:解决方案是在站点的目录段中的.conf文件中添加一个足够大的SSLRenegBufferSize行,假设Apache2。

一个微实例只有613MB内存。您正在将内存限制设置为4GB。需要使用小的或大的。