2010-02-26 8 views
6

Wie soll ich das Hochladen von Bildern mit PHP handhaben?Chmod, php und imageupload

Wie soll ich mit den chmod-Einstellungen umgehen?

Beispiel;

Ich habe ein Verzeichnis namens/Bild/wo ich alle meine Bilder hochladen möchte.

Soll ich dieses Verzeichnis auf chmod 777 setzen und es so lassen? Oder sollte ich chmod in diesem Ordner über PHP jedes Mal ändern, wenn ich ein Bild hochladen muss. Ist das richtig oder soll ich etwas anderes machen?

Antwort

4

Wie thephpdeveloper erwähnt, Einstellung einmal chmod ist genug. Alle nachfolgenden Schreibvorgänge in diesem Verzeichnis ändern die Verzeichnisberechtigungen nur dann, wenn Sie sie explizit an anderer Stelle an andere Berechtigungen chmodieren.

Die empfohlenen Berechtigungen für Verzeichnisse auf einem * nix-Server sind 755. Das Festlegen von Berechtigungen auf 777 wird nicht empfohlen. Wie von wic erwähnt, gibt es allen Benutzern, die Zugriff auf Ihren Server haben, volle Berechtigungen. Dies macht es anfällig, wenn Sie Shared Hosting betreiben oder den Server mit anderen Benutzern teilen.

Auch zu beachten ist, wie PHP auf Ihrem Server ausgeführt wird. In der Tat, wenn Sie PHP als CGI ausführen, Beispiel suphp, Berechtigungen von 777 für Verzeichnisse sind nicht zulässig. Die 777-Berechtigungen für die Verzeichnisse, in denen sich Ihre Skripts befinden, werden nicht ausgeführt und verursachen stattdessen einen "500 internen Serverfehler", wenn Sie versuchen, sie auszuführen.

1

Nur der Benutzer, der den Webserver ausführt, benötigt Berechtigungen für das Verzeichnis zum Schreiben. Und Sie möchten sicherlich keine Berechtigungen für ein Verzeichnis ausführen, in das Benutzer hochladen.

+0

Ich nahm an, dass Sie PHP für eine Website verwenden, wenn seine Skripting dies nicht beachten. – rerun

1

Normalerweise werden Ordnereinstellungen einmal festgelegt und das war's. Es ist ziemlich sinnlos, die Ordnerberechtigungen über PHP auf 777 zu setzen, wenn Sie es bereits auf 777 gesetzt haben.

+0

also ist es nicht schaden, das chmod auf 777 für ein dir gesetzt zu haben? (das gilt für alle Antworten) – jamietelin

+0

Ich lade auch Bilder über FTP hoch, wird der "Besitzer" nicht anders sein, als wenn ich über PHP hochlade? – jamietelin

+0

Der Besitzer wird sein, der sich bei der FTP-Sitzung anmeldet. – rerun

1

Nein, Sie müssen die Berechtigungen für das Verzeichnis nicht jedes Mal ändern. Einmal eingestellt, sind sie sozusagen festgelegt.

Die Verwendung von 777 ist Overkill, da es allen Benutzern volle Berechtigungen gibt. Entfernen Sie das 'x' Bit und lassen Sie Apache (oder wer auch immer) das Verzeichnis besitzen. Dies macht es unmöglich, Dateien aufzulisten.

2

Ich empfehle CHMOD auf 755