PHP压缩以内部服务器错误结束

PHP压缩以内部服务器错误结束,php,apache,unix,zip,Php,Apache,Unix,Zip,我的服务器上有一个php脚本,可以将几个目录压缩成一个zip文件。正常情况下,一切正常。今天,它比通常要花更长的时间,然后以显示“内部服务器错误”的页面结束 当我检查创建zip的目录时,似乎zip已经完成了一半(因为文件大小大约是应该的一半,并且已经损坏) 在我的日志中,我将此视为错误: mod_fcgid:进程30172优雅kill失败,发送SIGKILL 你知道问题出在哪里吗 这是我正在使用的代码(请注意,它在大多数情况下工作正常): 谢谢您的帮助。请共享相关代码打开错误报告(添加ini\u

我的服务器上有一个php脚本,可以将几个目录压缩成一个zip文件。正常情况下,一切正常。今天,它比通常要花更长的时间,然后以显示“内部服务器错误”的页面结束

当我检查创建zip的目录时,似乎zip已经完成了一半(因为文件大小大约是应该的一半,并且已经损坏)

在我的日志中,我将此视为错误: mod_fcgid:进程30172优雅kill失败,发送SIGKILL

你知道问题出在哪里吗

这是我正在使用的代码(请注意,它在大多数情况下工作正常):


谢谢您的帮助。

请共享相关代码打开错误报告(添加
ini\u集('display\u errors',1);错误报告(E\u ALL);
到您的脚本)并在这里发布相关代码。好的,我把代码放上去了。如果文件很大,您可能会在内存或时间限制内运行。@Barmar-这就是我的想法。我能为这个脚本分配更多的内存吗?
$zipFolders[] = 'httpdocs/';
$zipFolders[] = 'includes/';

$zip = new ZipArchive();

if ($zip->open($sourceFileName, ZIPARCHIVE::CREATE) !== TRUE) die ("Could not open archive");

foreach ($zipFolders as $zipFolder) 
{
    $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($zipFolder));

    foreach ($iterator as $key=>$value) 
    {
        if ( (substr($key, -1) != '.')&&(substr($key, -2) != '..') ) {          
            $zip->addFile(realpath($key), $key) or die ("ERROR: Could not add file: $key"); 
        }
    }
}

$zip->close();