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下载的文件在Dreamhost上被神秘中断_Php_File_Http_Connection_Dreamhost - Fatal编程技术网

通过PHP下载的文件在Dreamhost上被神秘中断

通过PHP下载的文件在Dreamhost上被神秘中断,php,file,http,connection,dreamhost,Php,File,Http,Connection,Dreamhost,我已经编写了一个简单的PHP脚本来下载一个隐藏的文件,如果用户有适当的身份验证。整个设置工作正常:它发送正确的头文件,文件传输开始正常(对于小文件,结束正常) 然而,当我尝试为一个150 MB的文件提供服务时,连接会在靠近文件中间的某个地方神秘地中断。以下是相关的代码片段(取自互联网上的某个地方,由我改编): 在调用上述函数之前,我还编写了一些其他代码,试图解决这个问题,但据我所知,它没有任何作用: session_write_close(); ob_end_clean();

我已经编写了一个简单的PHP脚本来下载一个隐藏的文件,如果用户有适当的身份验证。整个设置工作正常:它发送正确的头文件,文件传输开始正常(对于小文件,结束正常)

然而,当我尝试为一个150 MB的文件提供服务时,连接会在靠近文件中间的某个地方神秘地中断。以下是相关的代码片段(取自互联网上的某个地方,由我改编):

在调用上述函数之前,我还编写了一些其他代码,试图解决这个问题,但据我所知,它没有任何作用:

    session_write_close();
    ob_end_clean();

    ignore_user_abort();
    set_time_limit(0);
正如您所看到的,它不会试图一次将整个文件加载到内存中或任何类似的疯狂行为。更令人费解的是,传输中的实际终止点似乎在50到110 MB之间浮动,并且似乎在几秒钟内终止了对同一文件的所有连接(通过尝试与朋友同时下载来尝试)。中断的文件没有附加任何内容,并且我在日志中没有看到任何错误

我正在使用Dreamhost,所以我怀疑他们的看门狗可能正在杀死我的进程,因为它已经运行太久了。有人在这件事上有什么经验可以分享吗?还有别的问题吗?有什么解决办法吗


作为记录,我的Dreamhost设置为使用PHP5.2.1 FastCGI。

我对Dreamhost几乎没有经验,但您可以使用它(如果Dreamhost允许)。

很有趣。也许您应该将输出记录到一个包含一些统计信息的文件中,比如运行进程和内存使用情况。可能有用。我怀疑它可能会因为长时间运行而终止进程,或者更可能是因为消耗了太多内存而终止进程。
    session_write_close();
    ob_end_clean();

    ignore_user_abort();
    set_time_limit(0);