Problem: Datei Upload bei lighttpd

h00ch

Registered User
Hallo,

ich benutze lighttpd 1.5.0 1922 mit mod_uploadprogress und php fcgi.
10MB Uploads klappen, jedoch gibt es ein Problem bei Dateien über 100mb+.
Und zwar scheitert in manchen Fällen der Upload, lighttpd trägt ins accesslog einen Status 200 ein, der Browser läd die Datei nochmal hoch. Das kann sich 1-2 Mal wiederholen, danach wird die Datei richtig vom PHP5 Script verarbeitet und der richtige Status (in meinem Fall 302) gesendet.

Ich habe mit wireshark einmal die HTTP Pakete angeguckt: Der Status 200, wenn der Datei Upload fehl schlägt, wird nicht an den Browser gesendet.

Lösungs-/Debugvorschläge?

Siehe auch #1542, jedoch erwarte ich dort nicht so schnell Hilfe.

Gruß, h00ch
 
Eine richtige Idee, woran es liegen könnte habe ich nicht, allerdings könnte es ja an verschiedenen Sachen liegen.
z.B.
Tritt bei PHP vielleicht ein Fehler auf?
Was passiert wenn dabei ein PHP-Fehler auftritt?
Wird das File, wenn der Statuscode 200 kommt, richtig hochgeladen?
Nachdem der Lighttpd den Statuscode 200 gesendet hat, hält er die Verbindung dann noch offen(Test mit lsof)?
 
Tritt bei PHP vielleicht ein Fehler auf?
Das PHP Script wird gar nicht ausgeführt.

Wird das File, wenn der Statuscode 200 kommt, richtig hochgeladen?

lighttpd läd das File in 1MB Stücken in /var/tmp/lighttpd-upload-xxxxxx Dateien.
Jedoch werden die Dateien gelöscht und er beginnt von vorne nach dem Eintragen des 200 Status ins accesslog.

Nachdem der Lighttpd den Statuscode 200 gesendet hat, hält er die Verbindung dann noch offen(Test mit lsof)?

Er sendet keinen Status 200 laut wireshark. Der Status ist nur im accesslog zu sehen. Woher der Browser weiss, dass er nochmal hochladen soll, konnte ich bisher nicht finden, da der Wireshark Log den 100MB Upload beinhaltet.
Jedenfalls zeigt der Filter 'http' keinen Status Response an.
 
Das PHP Script wird doch ausgeführt. Jedoch gibt das $_FILE Array folgenden Error:

UPLOAD_ERR_PARTIAL, Value: 3; The uploaded file was only partially uploaded.

Das heisst z.B. Firefox 2 läd die Datei hoch, jedoch mit Fehler, dann wiederholt er es und erst beim dritten Upload kann PHP die Datei ohne Error verarbeiten.

IE7 versucht es nur einmal und bekommt einen Timeout. (accesslog sagt trotzdem 200 -)

Woran kann das Problem liegen?
 
server.max-keep-alive-requests = 0

in der lighttpd.conf hat es gefixt. Thread kann geschlossen werden. Danke nochmal für deine Hilfe!
 
Back
Top