• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP Upload Script & Permissions

Scubus

Neues Mitglied
Hallo,

Ich code gerade an einem PHP-Upload-Script.
Allerdings buggt es ziemlich. Ich bekomme entweder den Upload-Fehler 7: 'Failed to write file to disk' oder einen '500 Internal Server Error'. Deshalb wollte ich hier mal nachfragen wie es denn richtig geht.

Grundlegendes: Habe chmod 711 für alle Folder auf der Seite und chmod 604 für Files.

Mein PHP-Script:
PHP:
// ...

// eigentlicher upload

    $speicherpfad=$_SERVER['DOCUMENT_ROOT']."/folder/file/".$id.'.'.$extension;
    $file_path = $speicherpfad;
        if  (is_uploaded_file($_FILES['ufile']['tmp_name']))
    {
      move_uploaded_file($_FILES['ufile']['tmp_name'], $speicherpfad);
    }
    
    // delete if still exists in temp folder
    $tmp = $_FILES['ufile']['tmp_name'];
    if (file_exists($tmp) && is_file($tmp))
    unlink($tmp);

//...
Das Script das uploaded hat den chmod 604. Dem Upload-Folder (also da wo es hinkommt) habe ich chmod 777 gegeben...(Für Testzwecke).

Da ich ab und zu den 500 Internal Server Error bekomme, schaue ich in die error-logs. da steht dann:

[Sun Aug 22 09:59:04 2010] [error] [client *] (13)Permission denied: cannot read directory for multi: /var/chroot/home/html/folder/
[Sun Aug 22 09:59:04 2010] [error] [client *] File does not exist: /var/chroot/home/content/html/missing.html
Ziemlich verwirrend das ganze.

Ausserdem habe ich in meiner .htaccess folgendes (ist im Root Folder):

Code:
Options -MultiViews
RewriteRule ^about about.php [NE]
Options +MultiViews
Bitte um hilfe :9


Edit: manchmal bekomme ich auch folgenden Error (in den Logs):

[Sun Aug 22 11:25:30 2010] [error] [client *] (13)Permission denied: cannot read directory for multi: /var/chroot/home/content/html/folder/
 
Zuletzt bearbeitet:
Seltsam, hast du es mal mit relativen Pfaden versucht?
$speicherpfad= "file/".$id.'.'.$extension;

Derselbe 500 Internal Server Error (Bis die Fehlermeldung in den error_logs angezeigt wird dauert es noch etwas..)


Edit: Sehr komisch. Wenn ich in die erste Zeile des Scripts die("stop"); einfüge, kommt IMMER NOCH der 500 Internal Server Error. Wenn ich allerdings kein File auswähle und dann das Script starte, kommt die Nachricht "stop". Was heisst das? :O
 
Zuletzt bearbeitet:
Höchstwahrscheinlich, dass die .htaccess Datei Probleme macht.
Kann dir da aber nicht helfe, da bei mir, sobald ich an sowas rangehe ein 500er Error kommt ^^
 
Höchstwahrscheinlich, dass die .htaccess Datei Probleme macht.
Kann dir da aber nicht helfe, da bei mir, sobald ich an sowas rangehe ein 500er Error kommt ^^

Hmm, also wenn ich es von meinem anderen PC hier aus versuche klappt alles einwandfrei. Ich versuch mal den Cache hier zu löschen.

Edit:

Der Hauptfehler scheint folgender zu sein:

[Sun Aug 22 12:19:34 2010] [error] [client *] (13)Permission denied: cannot read directory for multi: /var/chroot/home/content/html/folder/
[Sun Aug 22 12:19:34 2010] [error] [client *] File does not exist: /var/chroot/home/content/html/missing.html

Mein Hoster ist godaddy. Ich google mal noch tiefer.
 
Zuletzt bearbeitet:
Zurück
Oben