dateien nach upload per php + http defekt

Bash, Shell, PHP, Python, Perl, CGI
geole
Posts: 9
Joined: 2004-01-26 23:16
Location: Erfurt

dateien nach upload per php + http defekt

Post by geole » 2010-05-19 23:31

Hallo allerseits,

folgendes Problem: Wenn Dateien mittels php und HTTP-Upload auf dem Server geschrieben werden, sind diese ab einer Dateigröße > 100kB defekt.

Ich hatte auf dem Server bisher Apache 2.2.12 mit PHP 5.2.* als fastcgi laufen und keinerlei Probleme. Nach einem Umstieg auf Apache 2.2.14 und PHP 5.3.* tritt oben beschriebenes Problem auf. Es besteht auch weiterhin, wenn ich PHP 5.2 mit dem 2.2.14 einsetze. Die PHP-Einstellen für max_upload und max_post liegen bei 10MB. Executionen_time bei 30s. An den Apache-Einstellungen für LimitRequestBody, timeout habe ich keine Änderungen vorgenommen.

Die Dateien werden laut Dateigröße auch vollständig geschrieben und es wird auch keine Fehlermeldung ausgegen. Das Errorlog steht auf debug. Es kommen nur mod_deflate.c(615)-Meldungen für die komprimierten Seiten.
Was mir aufgefallen ist, dass jpgs mit steigender Größe immer stärker beschädigt sind (im Betrachter).

Wie kann ich das Problem weiter eingrenzen oder, was natürlich noch schöner wäre, lösen?

Gruß Georg

User avatar
Joe User
Project Manager
Project Manager
Posts: 11603
Joined: 2003-02-27 01:00
Location: Hamburg

Re: dateien nach upload per php + http defekt

Post by Joe User » 2010-05-19 23:54

php-5.3.2/php.ini-production wrote:; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30

; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.
; Note: This directive is hardcoded to -1 for the CLI SAPI
; Default Value: -1 (Unlimited)
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; http://php.net/max-input-time
max_input_time = 60

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M

; Maximum size of POST data that PHP will accept.
; http://php.net/post-max-size
post_max_size = 8M

; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M

; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

geole
Posts: 9
Joined: 2004-01-26 23:16
Location: Erfurt

Re: dateien nach upload per php + http defekt

Post by geole » 2010-05-20 00:10

Hier die Einträge aus meiner php.ini

max_execution_time = 30
max_input_time = 60
memory_limit = 128M
post_max_size = 10M
file_uploads = On
;upload_tmp_dir =
upload_max_filesize = 10M
max_file_uploads = 20

Auf dem Server läuft noch suhosin, aber auch wenn ich dies deaktiviere bleibt das Problem bestehen.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11603
Joined: 2003-02-27 01:00
Location: Hamburg

Re: dateien nach upload per php + http defekt

Post by Joe User » 2010-05-20 00:12

Wie verarbeitet das Script den Upload? Relevanten Source bitte posten.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

geole
Posts: 9
Joined: 2004-01-26 23:16
Location: Erfurt

Re: dateien nach upload per php + http defekt

Post by geole » 2010-05-20 00:21

Ich habe mal was simples gebastelt, um den Upload zu testen. Problem besteht auch hier.

Code: Select all

<?php
move_uploaded_file($_FILES['datei']['tmp_name'], "uploads/bild.jpg");
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="datei"><br>
<input type="submit" value="Hochladen">
</form>

User avatar
Joe User
Project Manager
Project Manager
Posts: 11603
Joined: 2003-02-27 01:00
Location: Hamburg

Re: dateien nach upload per php + http defekt

Post by Joe User » 2010-05-20 11:33

OK, was passiert mit Apache-2.2.15+PHP-5.2.13 und Apache-2.2.15+PHP-5.3.2?
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

geole
Posts: 9
Joined: 2004-01-26 23:16
Location: Erfurt

Re: dateien nach upload per php + http defekt

Post by geole » 2010-05-22 20:40

So, nach einer Weile testen würde ich behaupten, dass es ein Fehler im Apachen ist. Denn wenn ich es richtig verstanden habe, ist es der Webserver-Prozess, der die Daten von tmp > Speicherort verschiebt. Und mit dem 2.2.15 kommen diese auch wieder korrekt am Ziel an. Werde mal einen Bugreport für meine Distri zusammen schrauben.

Auf jeden Fall ein größes Dankeschön an Joe für die schnelle Unterstützung :)

Gruß Georg