PHP Upload Script & Permissions

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);

//…
[/php]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):

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/

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? :open_mouth:

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.