phpbar.de logo

Mailinglisten-Archive

[php] Pfadangaben

[php] Pfadangaben

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mon Mar 8 13:04:53 CET 2004


Hallo Michael,


Zitat von Michael Detambel:

> in einer Anwendung, die ich erweitert und auf verschiedene Ordner
> aufgeteilt habe muss ich die Bezüge für die includes anpassen. Dabei
> habe ich verschiedene Varianten (z. B. PHP_SELF, dirname() etc.)
> ausprobiert.
>
> Frage: Gibt es eigentlich eine allgemein anerkannte Methode, in einem
> Skript solche Pfadangaben zu setzen? Wobei man ja sicher noch
> unterscheiden muss, ob das Skript auf dem eigenen Server oder bei einem
> Hoster liegt (notorische Meldung "open_basedir restriction in effect").

die Probleme, die mir bei der Angabe des absoluten Pfads von Includes
untergekommen sind, sind eigentlich nur die beiden folgenden:

1. DOCUMENT_ROOT ist in der Konfigurationsdatei des alten Servers mit Slash
("/") am Ende angegeben, in der des neuen aber ohne bzw. umgekehrt.

2. Die Website ist z.B. sowohl unter http://www.deine-domain.de/ als auch unter
http://www.deine-domain.com/de/ erreichbar, so dass hier je nach Server-Adresse
ein anderes DOCUMENT_ROOT-Verzeichnis in der httpd.conf eingetragen ist. Der
absolute, physische Pfad zu Deinem Include-Verzeichnis ist aber in beiden
Faellen gleich.

Aus diesen Gruenden bin ich davon abgekommen, in den Skripten direkt die
Umgebungsvariablen des Servers wie $_SERVER['DOCUMENT_ROOT'] zu verwenden, um
den absoluten Pfad fuer ein Include zu ermitteln.

Ich verwende in meinen Skripten jetzt immer selbst definierte Variablen fuer den
DOCUMENT_ROOT-Pfad und andere fuer meinen Server relevante Pfade (z.B.
http-Verzeichnis, ftp-Verzeichnis, Includes-Verzeichnis). Diese Variablen
werden in einer Include-Datei definiert, die ich serverseitig ueber
auto_prepend am Anfang aller PHP-Skripte einbinde. Sollte dann eine Anpassung
an eine neue Serverumgebung bzw. konfiguration noetig sein, kann ich das alles
in dieser einen Datei abfackeln und muss nicht fehleranfaellig und aufwendig
viele Stellen in meine Skripten anpassen.

Hilft Dir das vielleicht als Anregung schon weiter, oder habe ich Deine
Aufgabenstellung falsch verstanden?


Viele Gruesse

Lutz

php::bar PHP Wiki   -   Listenarchive