Hallo,
hast du das ganze verzeichnis auf 777 oder nur die
einzelnen hochgeladenen files?
Es muß schon 0777 sein, wenn überhaupt. (Es geht auch 1777 aber das kann in's Auge gehen)
Ist allerdings auch ein wenig zu großzügig ;-)
ob ich 0777 schreibe oder 777 sollte doch eigentlich egal sein...
Nein, denn 0777 setzt alle Bits, 777 übeschreibt nur die letzten, ein evt vorhandenes Sticky-Bit würde stehenbleiben.
also gut - hilft trotzdem nix
Also
- PHP läuft NICHT im safe_mode
Gut, fang ich mal hier an:
Welche Version von PHP?
4.1.0
Du hast die Bulglist auf php.org überprüft, ja?
Arbeitet es als mod_php? Ist zwar sehr wahrscheinlich, aber ich frag' mal lieber ;-)
ich glaube nicht, dass so ein bug in der version ist.
Welches OS in welcher Version?
test-server unter Suse 7.3
Das ist keine OS Version.
Mach einfach mal ein 'uname -a' in der Konsole/Xterm.
hatte gedacht, suse7.3 zu schreiben reicht - ist ein 2.4.18er Kernel (normale Standardinstallation).
Welcher Webserver in welcher Version?
apache 1.3.23
Sollte der Rechner mit rennendem Apachen am Netz hängen, auch nur temporär ist ein Update dringendst empfohlen. (erstmal aber nicht auf 2.0.x, das wäre zuviel Aufwand, da sich viel zuviel geändert hat.)
- das Verzeichnis hat VOR dem Upload schon 777 gehabt -> die Dateien haben auch 777 (hab ich auch nachgeprüft).
Hier jetzt mal vorrausgesetzt, das das Dateisystem mit den ext2 Rechten klarkommt:
Das Verzeichnis muß mindestens 0700 und höchstens(!) 0770 haben. Hat es das? Wirklich?
das dateisystem ist ext3
Welche Version?
Daran könnte es liegen, müßtest Du mal in die entspr Bugdatabase schauen.
Würde mich aber _sehr_ wundern.
mich auch...wäre bestimmt schon jemandem vor mir aufgefallen...
- wenn ich 0700 oder 0770 habe, kann ich aber keine dateien hochladen, da der apache unter wwwrun/nogroup läuft -> ich muss (0)777 machen
Und das hat Dich nicht aufmerken lassen? ;-)
Schreib doch mal eine Datei mit PHP und schau Dir deren Rechte an.
- der Upload klappt -> also eigentlich ausreichend rechte
Also geschrieben werden die Dateien, das hast Du kontrolliert, ja?
ja, ja, ja, ja - schon 100000 mal - klappt alles wunderbar
- die datei ist nicht fremd, da sie ja über php hochgeladen wurde -> wieder müsste php ausreichend rechte besitzen, da dateieigentümer.
Das ist leider nicht gar so einfach.
wenn ich in der bash "l" in dem verzeichnis eingebe, sagt es mir, dass die hochgeladenen dateien wwwrun/nogroup gehören. von daher sollte es schon so einfach sein
Aber darf PHP auch darauf zugreifen? Laut Fehlermeldung nämlich nicht.
Andere Möglichkeit: sind die Dateien evt schreibgeschützt? Auch wenn mich dieses ebenfalls verwundern würde.
wwwrun ist der dateieigentümer (da er die datei ja selbst geschrieben hat). und da 0777 ist (hab ich nachgeprüft) hat er alle berechtigungen
so short
weiter ideen ;-)
Christoph Zurnieden
Steffen Gebert