Datum: 04.01.2009
, Kategorie:
Scripte,
Server
Nicht nur Strato-Server trumpfen mit merkwürdigen Pfaden auf. Auch Web-Server anderer Web-Space-Provider spielen ein doppeltes Spiel.
Unser Comment Script erstellt während der Installation automatisch eine Datei, welche den Server-Pfad zum Script enthält. Den Pfad bezieht das Script dabei aus der Umgebungsvariable DOCUMENT_ROOT.
Dass man DOCUMENT_ROOT jedoch nicht ohne Weiteres trauen sollte, zeigte sich auch im folgenden Fall. Das Script eines Anwenders meldete folgenden Fehler:
Warning: include(): open_basedir restriction in effect. File(/usr/local/apache/htdocs/comments/comment.php) is not within the allowed path(s): (/home/:/usr/lib/php:/tmp) in /home/c999999/public_html/comments/include.php on line 11
Zwei Dinge, die hier auffallen. Erstens, das Script befindet sich auf einer Shared-Hosting-Maschine. Ein Pfad wie /usr/local/apache/htdocs/ passt da aber nicht ins Bild. Es fehlt die Zuordnung zu einem Kunden.
Und zweitens, beide Pfade unterscheiden sich. Zumindest der vordere Teil des Pfades sollte gleich sein. Laut Fehlermeldung aber wurde das Script unter dem Pfad /usr/local/apache/htdocs/ (laut DOCUMENT_ROOT) und unter dem Pfad /home/c999999/public_html/ (laut Fehlermeldung) installiert. Ein Script mit gespaltener Persönlichkeit?
Wohl kaum. Das Problem war gelöst, nachdem der Anwender den falschen Pfad (der aus dem DOCUMENT_ROOT kam) durch den korrekten Pfad (der durch die Fehlermeldung preisgegeben wurde) ersetzt hatte.