php greift auf root-Verzeichnis statt auf documentroot zu

Apache, Lighttpd, nginx, Cherokee
s1mon
Posts: 19
Joined: 2006-03-21 13:54

php greift auf root-Verzeichnis statt auf documentroot zu

Post by s1mon » 2007-01-06 14:08

Hallo,

ich habe folgendes Problem:

Der Aufruf

Code: Select all

require ("/inc/menu.inc.php");
greift nicht auf den absoluten Pfad

/var/www/webX/html/inc/menu.inc.php

zu, sondern auf

/inc/menu.inc.php

das funktioniert natürlich nicht, da dieses Verzeichnis erstens nicht existiert und zweitens ein OpenBaseDir Fehler kommt.

Dieses Problem passiert natürlich bei allen vergleichbaren Befehlen:

require, include, file uploads, etc.

phpinfo() sagt mir allerdings, dass das DocumentRoot Verzeichnis richtig ist:
Apache Environment
Variable Value
DOCUMENT_ROOT /var/www/webX/html/

Wäre super wenn mir jemand sagen könnte, wo hier das Problem liegt.

viele Grüße
Simon

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: php greift auf root-Verzeichnis statt auf documentroot zu

Post by Joe User » 2007-01-06 14:18

PHP beachtet den DOCUMENT_ROOT grundsätzlich nicht, dass musst Du schon selbst machen...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

s1mon
Posts: 19
Joined: 2006-03-21 13:54

Re: php greift auf root-Verzeichnis statt auf documentroot zu

Post by s1mon » 2007-01-06 14:31

Aber irgendetwas beachtet php ja schon,

ich hatte dieses Problem vorher noch nie und es war immer so, dass include("/abc.inc.php") nicht bis zu ServerRoot sondern nur bis zu meinem DocumentRoot gegangen ist.
So ist es auf Shared Servern doch für gewöhnlich auch.

grandcat
Posts: 104
Joined: 2006-08-15 12:26
Location: Bayern

Re: php greift auf root-Verzeichnis statt auf documentroot zu

Post by grandcat » 2007-01-07 00:51

Vielleicht hast du früher immer folgenden Code verwendet:

Code: Select all

require ("inc/menu.inc.php");
Alles gleich bis auf den führenden Backslash, der muss weg :wink:

s1mon
Posts: 19
Joined: 2006-03-21 13:54

Re: php greift auf root-Verzeichnis statt auf documentroot zu

Post by s1mon » 2007-01-07 13:09

grandcat wrote:Vielleicht hast du früher immer folgenden Code verwendet:

Code: Select all

require ("inc/menu.inc.php");
Alles gleich bis auf den führenden Backslash, der muss weg :wink:
Wohl eher nicht...

Also ich bin mit Sicherheit kein PHP Anfänger, nicht das wir uns falsch verstehen ;-)

also ihr könnt mir unmöglich erzählen, dass ihr nicht wisst was ich meine.

Es gibt definitiv eine Möglichkeit um in php mit führendem Backslash beginnende Verzeichnisaufrufe auf ein bestimmtes Verzeichnis zu begrenzen.

Ich hatte dieses Problem noch nie vorher und ich hab bestimmt schon auf 50 Servern mit PHP gearbeitet bei denen es immer so war... also so selten kann das wohl nicht sein.

Ob es jetzt eine PHP Einstellung, eine Apache Einstellung oder sonst was ist weiss ich leider nicht, deswegen bin ich ja hier. Wäre super wenn doch noch jemandem die Erleuchtung kommen würde ;-)

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: php greift auf root-Verzeichnis statt auf documentroot zu

Post by Joe User » 2007-01-07 13:48

DOCUMENT_ROOT wird von mod_cgi[d] gesetzt und auf Deinem Server läuft vermutlich mod_php ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: php greift auf root-Verzeichnis statt auf documentroot zu

Post by flo » 2007-01-07 14:10

Deswegen verläßt man sich ja beim Programmieren auch nicht auf die Gegebenheiten der Server - ein absoluter Pfad ist eben absolut - wenn man den benutzt, setzt man ihn selber zusammen oder benutzt alternativ relative Pfade, was eigentlich sicherer ist.

flo.