私のサーバーには、いくつかのディレクトリを 1 つの zip ファイルに圧縮する php スクリプトがあります。通常、すべて正常に動作します。今日、通常より時間がかかり、「内部サーバー エラー」というページで終了します。
zip が作成されたディレクトリを確認すると、zip がそこに半分ほど入っているように見えます (ファイルが本来あるべきサイズの約半分であり、破損しているため)。
私のログでは、これがエラーとして表示されます: mod_fcgid: プロセス 30172 グレースフル キルの失敗、SIGKILL の送信
問題は何ですか?
これは私が使用しているコードです (ほとんどの場合、正常に動作することに注意してください)。
$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();
助けてくれてありがとう。