Rechte für move_uploaded_file im save-mode

Tobias Menzel

Erfahrenes Mitglied
Hallo,

Vorweg: Ich bin nicht sicher, ob diese Frage bei php am besten aufgehoben ist; ggf. ziehe ich in Richtung Webserver um. ;)

Ich erstelle für einen Kunden eine Seite samt Galerie. PHP läuft auf dem Server deren Hosters im Save-Mode (was ich natürlich als letzter erfuhr, und einen Umbau meines schönen Galerie-Scriptes erforderte ;)). Nun verschiebe ich vom Benutzer hochgeladene Bilddateien in eine gemeinsames, existierendes Verzeichnis.

Das Merkwürdige: 5 Tage lang ging alles gut; die hochgeladenen Bilder ließen sich prima anzeigen und auch wieder löschen - seit zwei Tagen haben alle Bilder nach dem Upload allerdings eine Berechtigung von 0600 (vorher m.E. 0666) und lassen sich auf der Seite nicht einmal mehr anzeigen. Die Thumbnails, die ich im selben Atemzug mit imagecopyresampled und imagejpeg in einem anderen Verzeichnis (mit selben Rechten) anlege, sind davon allerdings nicht betroffen (ebenfalls 0666).

Meine Frage: Was könnte sich dort (ohne mein Zutun) plötzlich verändert haben, bzw. wie kann ich das Problem (ohne ftp-Funktionen) umgehen?

Die betreffene Zeile schaut einfach so aus:
PHP:
if (!move_uploaded_file($_FILES["img"]["tmp_name"], "../gallery/images/".$fname)) {
- das klappt nach wie vor auch alles, die Bilder werden im korrekten Verzeichnis angelegt.

Danke und Gruß

P.S.: Hinzu kommt, dass ich seit 2 Tagen auch per FTP (Dreamweaver) die Berechtigungen für einzelne Bilder auf dem Server nicht mehr verändern kann - welche das sind, erscheint mir hier völlig willkürlich.
.
 
Welchem User gehoeren denn die
  1. Verzeichnisse?
  2. Scripts?
  3. per FTP hochgeladenen Dateien?
  4. aelteren per PHP hochgeladenen Dateien?
  5. neuen per PHP hochgeladenen Dateien?
Moeglicherweise laeuft Apache jetzt mit einem anderen User.

FTP via PHP ist absolut keine Alternative fuer Dich?
 
Hi und Danke für Deine Antwort,

Der Eigentümer des Scriptes (und der Zielordner) ist 2422, die hochgeladenen Dateien (und die Thumbnails) haben die owner-id 33. Auf die Thumbs kann ich wie gesagt lesend und schreibend zugreifen, auf die hochgeladenen Bilder nicht. Jetzt könnte ich wohl die Bilder auch einfach per imagejpeg erzeugen, sehr elegant wäre das allerdings nicht.

Mit Apache kenne ich mich nicht besonders gut aus; lassen sich die Benutzer-IDs irgendwie ändern? Wie kann ich den Apache-User herausfinden?

@FTP: Irgendwie bin ich mit dem Upload via FTP nicht gut zurandegekommen bzw. konnte die Dateien dann auch nicht mehr löschen ...

Gruß
.
 
Klappt leider nicht (bzw. lässt sich z.B. 33 nicht in 2422 ändern).

Langsam nervig: Trotz "error_reporting(E_ALL)" bekomme ich inzwischen auch keinerlei Fehlermeldungen und Warnungen ausgegeben (auch nicht bei Syntaxfehlern etc.). Dieser Server ist mir mehr und mehr eien Rätsel ... :confused:

Gruß

P.S.: In der Zwischenzeit probier ichs mal mit dem Umweg über imagejpeg - im Moment gehts erstmal darum, dass die Galerie kurzfristig wieder läuft. ;)

EDIT: Klappt - ich spare mir move_uploaded_file und erstelle aus der temprären Datei direkt ein jpeg; für die Praxis reichts erstmal. ;)
.
 
Beides "OFF" - error_reporting steht auf 2039. Zugriff habe ich dort nur über PHP oder über ein recht spartanisches Confixx-Panel. Ich habe das Gefühl, die ändern dort alle Naslang was an den Einstellungen; inzwischen steht sogar register_globals wieder auf "ON".

Es läuft PHP 4.3.10-16 auf Apache/2.0.54 (Debian GNU/Linux).

Gruß
.
 
Oha - das wäre in der Tat eine prima Sache. Sehe ich das richtig, dass diese Konfigurationsmöglichkeit vom Hoster ausgeschlosssen werden kann:
You will need "AllowOverride Options" or "AllowOverride All" privileges to do so.
?

Einen Versuch ist es jedenfalls Wert. ;)

Gruß
.
 
Zurück