Rolf B: PHP-Zippen von großen Dateien schlägt fehl

Beitrag lesen

Hallo Klaus1,

popen erzeugt laut Handbuch einen Fork, d.h. einen neuen, parallel laufenden Prozess. Angeblich passiert das nicht unter Windows, da wartet PHP bis das Programm durch ist.

Auf Unix-Systemen sollte der Ablauf parallel sein, und fpassthru sollte warten, bis zip durch ist. DAS solltest Du für Dich beweisen, indem Du ein paar ECHOs einbaust und zip mit -v und nicht mit -q laufen lässt. Das -v sollte Dir auch helfen, die Fehlermeldungen von ZIP besser verstehen zu können.

Du solltest auch ein 2>&1 an die ZIP Befehlszeile hängen, um mögliche Ausgaben auf stderr mitzubekommen. popen liefert Dir nur stdout.

Du solltest weiterhin überprüfen, ob zwei Anwender im gleichen $folder unterwegs sind. Zu diesem Zweck solltest Du Informationen ins Serverlog schreiben (welches Du hoffentlich lesen kannst). Wenn nicht, schreib eine eigene Log-Datei. Dieser create-Error deutet auf Parallelzugriff hin.

Rolf

--
sumpsi - posui - obstruxi