Mon script s'exécute sous CentOS 5.6 et PHP 5.2.12 et utilise ZipArchive() pour créer avec succès des fichiers .zip de plus de 1,6 Go, mais pas pour une archive plus grande de 2 Go ou plus - PHP s'arrête sans erreur apparente. Rien dans le journal des erreurs de PHP ou dans stderr. Le script est exécuté à la ligne cmd et non de manière interactive.
Le script s'exécute pendant environ 8min et l'archive temporaire s'agrandit et en vérifiant la taille des fichiers, le dernier listing montrait que le fichier tmp avait une taille de 2120011776 et ensuite le fichier tmp disparaît et le script PHP passe à travers la logique et exécute le code après la création de l'archive.
Pour une raison quelconque, top montre que le CPU est toujours à 95% et crée un nouveau fichier d'archive tmp - il le fait pendant encore 5+ minutes et s'arrête silencieusement en laissant le fichier d'archive tmp inachevé. Dans ce test, il y avait moins de 4000 fichiers attendus.
Le script comme indiqué fonctionne très bien en créant des fichiers d'archives plus petits.
Testé sur plusieurs ensembles différents de données sources volumineuses - même résultat pour les fichiers volumineux.
Ce problème ressemble à cette question : Limite de taille de la classe zipArchive de PHP ?
J'ai pensé que la commande ls -l renvoyait peut-être un compte de 2K blocs et que 2120011776 serait donc proche de 4GB mais cette taille est en octets - la taille du fichier xxxx.zip.tmpxx.
Merci !