• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

Plesk 10, Flash Upload Fehler (PHP) [CentOS 5.6, PHP 5.3.x, fcgid]

Mr.AndersoN

Member
Mir bereitet derzeit eine frische Plesk-Installation ziemliches Kopfzerbrechen und ich bin mit meinem Latein auch am Ende.

Kurz die Eckdaten:
- Plesk 10.3.1
- CentOS 5.6
- PHP 5.3.8 per Atomic Corp Repo(s) nachinstalliert
- PHP per fastcgi (fcgid) eingebunden (seitens Plesk)
- Problem tritt nicht auf, wenn PHP per mod_php oder cgi eingebunden wird

Problem: Der Flash-Upload in einem beliebigen CMS (Contao und Wordpress getestet) läuft beim Upload mehrerer Dateien in bestimmten Größenkonstellationen amok.
Im Detail: Auf der Serverseite wird per PHP-Funktion is_uploaded_file geprüft, ob die Datei ordentlich hochgeladen wurde. Im Fehlerfall kommt dort aber ein UPLOAD_ERR_PARTIAL zurück. Die Datei, bei der der Fehler dann auftritt wird auch nicht hochgeladen.

Das irrwitzige sind die Konstellationen dazu:

70KB+ = mehr als 70KB (meist mit ca. 600KB getestet)
70KB- = weniger als 70KB (meist mit 50KB getestet)


Code:
Datei I		Datei II	Datei III	Geht?	Warteschlange
-----------------------------------------
70KB-		70KB-		---		ja
70KB+		70KB+		---		nein

70KB-		70KB+		---		ja
+70KB		70KB-		---		ja

70KB-		70KB-		70KB-		ja
70KB-		70KB+		70KB-		ja	ca 700KB
70KB+		70KB-		70KB-		ja
70KB-		70KB+		70KB+		nein	ca 200KB
70KB+		70KB-		70KB+		nein

Ausgeschlossen werden kann; da geprüft und notfalls konfiguriert:
- Pfad-Konfiguration á la open_basedir, upload-temp
- Größen-Konfiguration á la max_input_size, max_post_size, max_upload_size, FCGID und MaxRequestLen (alles auf >20M gesetzt)

Per normalen HTTP-Post-Upload kann ich auch ohne Probleme mehrere große Dateien hochladen, die mittels Flash-Upload zum Fehler führen würden.

Errorlogs bleiben leer, da der Fehler auch nicht als PHP-Error auftritt, sondern eben ein Ergebnis einer Prüffunktion ist.

Ich bin ratlos. Evtl. hat noch jmd. einen Geistesblitz. Hilfreich wäre aber auch schon, ob andere das selbe Problem mit Plesk 10 und Fastcgi haben bzw. eben nicht.
 
Ein Gedankengang noch ohne Kaffee...
Nach einem der letzten Updates trat das Problem auf, dass ich 505er Meldungen beim Upload von Dateien bzw. bei der Installation oder Aktualisierung von Plugins oder Komponenten und Modulen erhalten habe. Beim Flash-Upload könnte ich mir vorstellen, dass der 505er nicht offensichtlich ist.
Ursache war der Parameter FcgidMaxRequestLen, welcher mit einem der Updates auf 128kb geschrumpft ist. Den Wert in der fcgid.conf ergänzt und manuell eingestellt, so klappte wieder alles. Auch wenn alle anderen Werte größer waren, so war dieser Punkt der Flaschenhals.
Als Apache-Modul oder CGI trat der Fehler nicht auf. Kannst es ja mal ausprobieren:
Datei /etc/apache2/mods-available/fcgid.conf ergänzen.
Code:
  ...
  [COLOR="Navy"]FcgidMaxRequestLen 134217728[/COLOR]
</IfModule>
Apache einmal neu laden und dann nochmal ausprobieren.
 
Danke für den Hinweis, aber daran liegt es auch nicht:
[...]FCGID und MaxRequestLen (alles auf >20M gesetzt)

Das ist genau das kuriose - rein von der Konfiguration müsste es ohne weiteres funktionieren. Zumal ein normaler HTTP-Upload mit mehreren >2MB Dateien klappt.
Der Flash-Upload klappt mit einzelnen, großen Dateien auch wunderbar. Nur sobald mehrere Dateien hochgeladen werden, die über ~70KB liegen, will der Upload nicht.

Ich kann mir auch nicht erklären woher die 70KB kommen (60KB funktioniert noch).

Zum Vergleich hab ich noch eine ISPCP 1.0.6 Installation auf Debian lenny. Etwas ältere PHP- und FCGID-Version. Aber dort gibt es das Problem nicht.

Entweder hat Plesk ein Fehler in dem Suexec-Wrapper oder die installierte FCGID-Version (psa-mod_fcgid.x86_64 - 2.3.6-11052615) hat irgend ein Bug.
 
Problem scheint gelöst. CentOS 5.6 kommt mit Apache 2.2.3 daher. Apache 2.2.8 aus dem CentOS Testing-Repo installiert und schon kann ich 10x600KB Dateien in einem Schwung per Flash-Uploader hochladen.

Detailiert:
CentOS Testing Repo hinzufügen
Code:
# vi /etc/yum.repos.d/CentOS-Testing.repo
folgendes einfügen
Code:
[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
includepkgs=httpd mod_ssl

# CentOS-Testing:
# !!!! CAUTION !!!!
# This repository is a proving grounds for packages on their way to CentOSPlus and CentOS Extras.
# They may or may not replace core CentOS packages, and are not guaranteed to function properly.
# These packages build and install, but are waiting for feedback from testers as to
# functionality and stability. Packages in this repository will come and go during the
# development period, so it should not be left enabled or used on production systems without due
# consideration.
Apache upgraden
Code:
# yum update
Apache neustarten
Code:
service httpd restart

und fertig ist der Lack.

Aus dem Test-Repo wird gem. Konfiguration nur der Apache sowie das davon abhängige mod_ssl installiert (siehe includepkgs).
 
Back
Top