Problem mit open_basedir restriction
Hallo alle zusammen!
Folgendes ist mein Problem:
Ich habe im Verzeichnis /images/thumbs/ Dateien liegen, die ich mir per PHP anzeigen lassen möchte. Ich möchte also das Verzeichnis folgendermaßen öffnen:
$dp = opendir('/images/thumbs')
ich bekomme nun leider eine Fehlermeldung, die da lautet:
opendir(): open_basedir restriction in effect. File(/images/thumbs) is not within the allowed path(s): (/home/httpd/vhosts/meinewebsite.de/httpdocs:/tmp) in /home/httpd/vhosts/meinewebsite.de/httpdocs/galerie.inc.php on line 2
Nachdem, was ich bisher herausgefunden habe, könnten die beiden folgenden Einträge aus meiner PHP.ini relevant sein:
Directive: safe_mode Local-Value: Off Master-Value: Off
Directive: open_basedir Local-Value: /home/httpd/vhosts/meinewebsite.de/httpdocs:/tmp Master-Value: no value
Allerdings sehe ich jetzt nicht den Grund, warum ich mit diesen Einstellungen die Fehlermeldung bekomme... Für Aufklärung wäre ich dankbar.
Wenn ich nun in meiner php.ini was ändern muss, habe ich dazu folgende Fragen:
Kann ich die php.ini einfach so auf meinem root-server ändern während der apache läuft oder muss ich den dazu erst mal runterfahren oder so?
Gibts ne Möglichkeit, die entsprechende Änderung mit ini_set direkt im Skript zu machen? Wenn ich mir diese Seite hier anschaue, würde ich ja vermuten, dass es nicht geht, aber vielleicht verstehe ich auch nur was falsch: http://de2.php.net/manual/de/ini.php#ini.list
Also, schonmal im Voraus herzlichen Dank für Eure Mühe!
Antworten
Auf deinem Rootserver kannst du natürlich alles verändern, wie du es möchtest. Normalerweiße musst du den Apache neustarten, damit die Änderungen übernommen werden.
Über Basedir Restrictions findest du genug mit Google und der Suchfunktion, von daher:
Standard-Antwort:
Deine Frage wurde im Forum schon einige Male beantwortet. Bitte benutze die
Suchfunktion, um nach anderen Themen zu suchen, in denen dieses Problem schon behandelt wurde.
Wenn Du eine Fehlermeldung zu sehen bekommen hast wäre es empfehlenswert nach dieser zu suchen.
2.
Gegoogelt habe ich schon ne ganze Weile (Reichen knapp 2 Stunden?) und auch mit der Suche hier im Forum habe ich nichts gefunden, was mein Problem schlussendlich lösen konnte.
Würde das Verzeichnis, das ich auslesen möchte, außerhalb des httpdocs-Verzeichnisses liegen, wäre mir klar, wie ich das Problem lösen kann bzw. zumindest, worin das Problem genau besteht.
Allerdings scheint es mir so, als ob die open_basedir-Restriction nichts gegen das Auslesen des gewünschten Verzeichnisses haben dürfte, da dies ein Unterverzeichnis des erlaubten httpdocs ist.
3.
ich glaube kaum, dass die bilder in /images/thumbs/ liegen, höchstens in
/home/httpd/vhosts/meinewebsite.de/httpdocs/images/thumbs/
dementsprechend lass einfach den / weg und mach das ganze relativ zum ort deines scripts, wenn das script auf deiner hauptebene liegt dann einfach
opendir('images/thmub');
ansonsten z.B.
opendir('../images/thmub');
4.
Herzlichen Dank!
Es lag wirklich an dem blöden / :-)
Kein Wunder, dass ich in den letzten 2 Stunden fast verzweifelt bin bei der Suche nach der falschen Einstellung in der php.ini
Der Slash ist mir dabei überhaupt nicht als Fehlerquelle aufgefallen! Danke!