ZipArchive() を使用して CentOS 5.6 および PHP 5.2.12 で実行されている私の php スクリプトは、1.6Gb を超える .zip ファイルを正常に作成しますが、2GB 以上の大きなアーカイブでは作成しません - PHP は明らかなエラーなしで中止されます。PHP エラー ログまたは stderr に何もありません。スクリプトはコマンドラインで実行されており、インタラクティブではありません。
スクリプトは約 8 分間実行され、一時アーカイブが大きくなり、ファイルサイズをチェックしている間、最後のリストは tmp ファイルのサイズが 2120011776 であることを示し、その後 tmp ファイルが消え、PHP スクリプトがロジックを通り抜け、アーカイブの作成後にコードを実行します.
何らかの理由で、top は CPU がまだ 95% であり、新しい tmp アーカイブ ファイルを作成していることを示しています。これをさらに 5 分以上実行し、サイレントに停止して未完成の tmp アーカイブ ファイルを残します。このテストでは、予想されるファイルの数は 4000 未満でした。
前述のスクリプトは、小さなアーカイブ ファイルを作成しても問題なく動作します。
大きなソース データのいくつかの異なるセットでテストされました - 大きなファイルでも同じ結果です。
この問題は、次の質問に似ています: PHP の zipArchive クラスのサイズ制限?
おそらく ls -l コマンドは 2K ブロックのカウントを返しているので、2120011776 は 4GB に近いと思いますが、そのサイズはバイト単位です - xxxx.zip.tmpxx ファイルのサイズです。
ありがとう!