Hallo, ich bin grad wieder am Grübeln über das sinnvolle Plätzchen für include-Dateien.
Wie macht ihr das genau, also ich wollte es eigentlich so machen...
Alle Dateien (Klassendateien oder andere Sachen) in einen Ordner (nennen wir ihn include) und dann eine Ebene höher als das Homeverzeichnis. Also wennd er lokale Pfad zur Homepage usr/www/htdocs/ wäre , dann die includes in /usr/www/include/
ist das so sinnvoll?
also und dann mir einer datei die Pfade definieren:
<?php
$CLASSDIR = "/usr/www/include";
$INCDIR = "/usr/www/include";
$UPLOADDIR = "/usr/www/download";
?>
Ist das so sinnvoll, oder habt Ihr Tipps, Links, ... oder was weiss ich für mich.
Würde mich über einen Gedanken und vor allem auch wissensaustausch freuen....
subba sache, uli
Hallo Uli,
ich halte den Ansatz für richtig. Die "empfindlichen" Dateien sollten immer außerhalb der Document-Root liegen. So, wie Du das anpeilst, sieht es schon gut aus.
Nur die Adressierung würde ich anders gestalten:
$scriptDir ="~scripts";
$CLASSDIR = "../include";
$INCDIR = "../include";
$UPLOADDIR = "../download";
Das Datei-Uploadverzeichnis ist sicher eines, das als Endablage gedacht ist. Denn als erstes landen die Uploads sowieso in einem Temp-Verzeichnis.
Ich habe hier an anderer Stelle schon Senf verteilt zum Thema "Bilder in Datenbank oder auf die 'Platte'".
Da sollten wir die beiden Threads irgendwie zusammenführen. Ist ja di elgiech Problematik. Eigentlich gehören die Bilder vom Performance-Ansatz usw direkt in ein ../~bilder-Verzeichnis. Das geht aber nicht, weil der wwwrun dann für http-Zugriffe nicht an die Bilder herankäme. Die müssen für "normale" <img src=... Aufrufe innerhalb der Dókument-Root liegen.
Du solltest auf jeden Fall die Others-Rechte alle entfernen und dem wwwrun auf alle Verzeichnisse, in dnen er lesen darf z.B. die Gruppe wwwread (musst Du natürlich anlegen) geben. Für alle Verzeichnisse, in denen er schreiben darf, sollte er der Owner sein.
Dann hast Du ein Stück mehr relative Sicherheit.
Schau Dir nochmal den Unterschied zwischen include und require an. Bei Include gibt es im Fehlerfalle immer noch Meldungen, die sich auf die ausgelagerten Dateien beziehen. Bei require sieht es für den Anwender so aus, als hätte der Code in der für ihn zugänglichen php-Datei gestanden.
So weit so gut
Gruß
Tom