symlink-Pfad ermitteln

14/07/2011 - 12:57 von Stefan Dreyer | Report spam
Moin,

ich habe folgendes Problem. In meiner Entwicklungsumgebung habe ich
folgendes Szenario: ich habe CMSe in verschiedenen Verzeichnissen
jeweils per Subdomain erreichbar. Innerhalb dieser CMSe habe ich nun ein
Plugin installiert, dass ich jeweils per Symlink eingebunden habe.
letzteres hat den großen Vorteil, dass ich Änderungen gleich in allen
Systemen testen kann, ohne das Plugin installieren zu müssen.
Das funktioniert auch absolut hervorragend, bis auf die Tatsache, dass
ich für einige Funktionen am CMS vorbei direkt auf eine
Konfigurationsdatei des jeweiligen CMS zugreifen muss. Da diese Datei
unterhalb des Symlinks liegt, erhalte ich bei einem
include('../../../config.php') natürlich immer nur die Datei, die
unterhalb des physikalisch installierten Plugins liegt. Nicht aber die
Datei des entsprechenden VHosts. Gibt es eine einfache Möglichkeit an
die korrekte Datei zu kommen oder muss ich mit etwas per
$_SERVER["SCRIPT_FILENAME"] basteln? In letzterem steht ansonsten der
korrekte Pfad des aufgerufenen Skriptes drin.
 

Lesen sie die antworten

#1 Gustaf Mossakowski
14/07/2011 - 13:58 | Warnen spam
Stefan Dreyer schrieb:

ich habe folgendes Problem. In meiner Entwicklungsumgebung habe ich
folgendes Szenario: ich habe CMSe in verschiedenen Verzeichnissen
jeweils per Subdomain erreichbar. Innerhalb dieser CMSe habe ich nun ein
Plugin installiert, dass ich jeweils per Symlink eingebunden habe.
letzteres hat den großen Vorteil, dass ich Änderungen gleich in allen
Systemen testen kann, ohne das Plugin installieren zu müssen.



Hab ich auch mal gemacht, aber meinst du nicht, Versionierungssoftware
macht das einfacher? Dann kann man gezielt für einzelne Sites Änderungen
testen, wàhrend andere einfach so weiterlaufen wie bisher.

Das funktioniert auch absolut hervorragend, bis auf die Tatsache, dass
ich für einige Funktionen am CMS vorbei direkt auf eine
Konfigurationsdatei des jeweiligen CMS zugreifen muss.



Klingt etwas eigenwillig, wieso will man ein Plugin eines CMS ohne das
CMS aufrufen? Mir scheint, dass das ein Konzeptionsfehler des CMS ist,
dass die Anwendung das manchmal erfordern kann.

Da diese Datei
unterhalb des Symlinks liegt, erhalte ich bei einem
include('../../../config.php') natürlich immer nur die Datei, die
unterhalb des physikalisch installierten Plugins liegt. Nicht aber die
Datei des entsprechenden VHosts. Gibt es eine einfache Möglichkeit an
die korrekte Datei zu kommen oder muss ich mit etwas per
$_SERVER["SCRIPT_FILENAME"] basteln? In letzterem steht ansonsten der
korrekte Pfad des aufgerufenen Skriptes drin.



Setz doch entsprechende Variablen oder Konstanten. Ich setze immer einen
'root' (meist DOCUMENT_ROOT, bei kaputten Hostern gerne auch mal was
anderes) und ein 'includes' (je nach Hoster innerhalb oder oberhalb des
DOCUMENT_ROOT). Die sind absolut. Die config.inc.php liegt dann direkt
im 'includes'-Verzeichnis.

Grüße, Gustaf

Ähnliche fragen