我在PHP5中开发了一个递归FTP下载脚本,允许您使用AJAX请求选择要下载的一些文件和/或目录。服务器接收的POST变量只是一个短管道分隔的字符串,根本不占用任何内存。
脚本本身在我的本地Apache设置上完美运行,并进入每个目录并下载每个文件和文件夹。
在Media Temple下设置的远程虚拟服务器上,脚本在大型结构上失败,我的本地Apache处理得很好。
症状是某些目录被认为是文件,因此脚本不会进入它们并进一步下载。
脚本通过尝试远程打开路径来检查路径是否是目录。如果它可以打开目录,它会递归地下载它中的所有内容,直到它完成。
Media Temple上托管的php.ini的阈值比我本地设置的阈值高得多(更长的执行时间,更高的内存限制等),所以这不是问题...我甚至尝试过使用我在远程服务器上的本地php.ini。
告诉错误日志用于获取我的“过早结束脚本标题,PHP”,直到我从常规主机切换到专用虚拟服务器。现在它根本没有反应。
我试图解决这个问题的是在php.ini中尝试不同的值,最近我为每个创建的新文件和目录做了一个flush()和ob_flush()...停止出现“过早结束脚本标题,PHP”。
你有什么想法吗?
答案 0 :(得分:0)
也许这是一个访问问题:你在Linux上运行吗? VM与您的开发箱相同吗? 运行apache的用户是否有足够的权限来读取目录?
答案 1 :(得分:0)
基本上我不知道你的代码是怎样的,但那部分here(来自php.net maillinglist)在我的服务器上工作正常。 也许您可以举例说明您的代码吗?