0

我在 PHP5 中开发了一个递归 FTP 下载脚本,它允许您选择一些文件和/或目录以使用 AJAX 请求进行下载。服务器接收到的 POST 变量只是一个用管道分隔的短字符串,根本不占用任何内存。

该脚本本身在我的本地 Apache 设置上完美运行,并进入每个目录并下载每个文件和文件夹。

在我在 Media Temple 下设置的远程虚拟服务器上,脚本在大型结构上失败,这由我的本地 Apache 处理得很好。

症状是某些目录被认为是文件,因此脚本不会进入它们并进一步下载。

该脚本通过尝试远程打开它来检查路径是否是目录。如果它可以打开目录,它会递归下载其中的所有内容,直到完成。

托管在 Media Temple 上的 php.ini 的阈值比我本地设置的阈值高得多(更长的最大执行时间,更高的内存限制等)所以这不是问题......我什至尝试过使用我的本地 php .ini 在远程服务器上。

跟踪用于获取“脚本头过早结束,PHP”的错误日志,直到我从常规托管切换到专用虚拟服务器。现在它完全没有反应。

我试图解决这个问题的是在 php.ini 中尝试不同的值,最近我为每个创建的新文件和目录做了一个 flush() 和 ob_flush() ......试图阻止任何发生“脚本头过早结束,PHP”。

你有什么想法?

4

2 回答 2

0

也许这是一个访问问题:你在 Linux 上运行吗?虚拟机和你的开发盒一样吗?运行 apache 的用户是否有足够的权限来读取目录?

于 2009-09-29T14:08:39.170 回答
0

好吧,基本上我不知道您的代码是什么样的,但是这里的那部分(来自 php.net maillinglist)在我的服务器上运行良好。也许你可以给我们一个你的代码示例?

于 2009-09-29T14:45:37.053 回答