PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Document Root


#0099FF
13.05.2004, 19:09:05
Hallo!

Ich hoffe in der richtigen Kategorie zu Posten, mal schauen.

Konfiguration und Funktion:
in der httpd.conf unter V-Host steht bei DocumentRoot "/var/users/xyz/www", bei einem Aufruf der Seite xyz via Browser funktionieren auch alle html und php Seiten Grundsätzlich.

Problem:
beim include() von Dateien im selben Verzeichnis oder beim abfragen alla file_exist() wird immer Ausgegeben das File nicht Vorhanden ist Filename mit und ohne "./". Wird der include oder die abfrage mit dem vollem Pfad durchgeführt ist die funktion OK.
Wird die via file_exist() gesucht Datei in das / Verzeichnis gelegt wird diese auch gefunden!

bei der selben Teststellung auf einem Testserver sind alle Funktionen OK

Produktivserver Apache 2.0.47 PHP 4.2.3
Testserver Apache 2.0.45 PHP 4.2.2
beide Server RedHat 7.3

Kann das Problem in der httpd.conf oder php.ini stecken?
Welche Infos werden von Euch benötigt um mir eventuell weiterhelfen zu können?

Danke für alle Infos und Antworten

#0099FF
14.05.2004, 07:36:41
Hallo Leute,

das erste Posting ist vielleicht nicht ganz leicht verständlich, sorry aber ich war zu diesem Zeitpunkt nicht mehr 100% bei der Sache.

bei einem weiteren Test bin ich draufgekommen das bei der abfrage:
file_exist("$PHP_SELF") beim System1 false und beim System2 true rauskommt.
Die Abfrage file_exist("/pfad/$SELF_PHP") bei beiden Systemen mit true beantwortet wird.

LG
#0099FF

meikel (†)
14.05.2004, 11:57:29
Original geschrieben von #0099FF
>das erste Posting ist vielleicht nicht ganz leicht verständlich,
>sorry aber ich war zu diesem Zeitpunkt nicht mehr 100% bei der Sache.

Es ist auch jetzt nicht besser.

>bei einem weiteren Test bin ich draufgekommen das bei der abfrage:
>file_exist("$PHP_SELF") beim System1 false und beim System2 true rauskommt.

Das ist auch Mumpitz. $PHP_SELF heißt seit PHP 4.1.0 $_SERVER['PHP_SELF'] oder $_SERVER['SCRIPT_NAME']

Ob in $PHP_SELF überhaupt was drinsteht, hängt von register_global (php.ini) ab.

>Die Abfrage file_exist("/pfad/$SELF_PHP") bei beiden Systemen mit true beantwortet wird.

file_exists() und die anderen Datei- und Verzeichnisfunktionen benötigen einen gültigen Pfad im Filesystem.
/ kennzeichnet die Wurzel und nicht auf das Documentroot.
Das aktuelle Verzeichnis kann man so angeben: ./
Es erspart einem allerdings jede Menge Ärger, wenn man grundsätzlich mit absoluten Pfaden arbeitet, die man sich selbst zusammenbastelt. Quellen sind
$_SERVER[] : SCRIPT_NAME DOCUMENT_ROOT oder was sonst noch so paßt
oder
$path = dirname(__file__);
Mit Letzterem erhält man den Pfad zu dem Script, welches gerade abgearbeitet wird. Gut für verschachtelte Include-Orgien.