我在 PHP5 中开发了一个递归 FTP 下载脚本,它允许您选择一些文件和/或目录以使用 AJAX 请求进行下载。服务器接收到的 POST 变量只是一个用管道分隔的短字符串,根本不占用任何内存。
该脚本本身在我的本地 Apache 设置上完美运行,并进入每个目录并下载每个文件和文件夹。
在我在 Media Temple 下设置的远程虚拟服务器上,脚本在大型结构上失败,这由我的本地 Apache 处理得很好。
症状是某些目录被认为是文件,因此脚本不会进入它们并进一步下载。
该脚本通过尝试远程打开它来检查路径是否是目录。如果它可以打开目录,它会递归下载其中的所有内容,直到完成。
托管在 Media Temple 上的 php.ini 的阈值比我本地设置的阈值高得多(更长的最大执行时间,更高的内存限制等)所以这不是问题......我什至尝试过使用我的本地 php .ini 在远程服务器上。
跟踪用于获取“脚本头过早结束,PHP”的错误日志,直到我从常规托管切换到专用虚拟服务器。现在它完全没有反应。
我试图解决这个问题的是在 php.ini 中尝试不同的值,最近我为每个创建的新文件和目录做了一个 flush() 和 ob_flush() ......试图阻止任何发生“脚本头过早结束,PHP”。
你有什么想法?