open_basedir Problem
am 23.06.2006 13:49:54 von Michael Vistein
Hallo,
ich habe ein merkwürdiges Problem (PHP 4.3.10):
in der Apache Konfiguration ist open_basedir auf
/var/pfad/zum/project/:/usr/share/php:/tmp
gesetzt.
Im Projekt kommt beim umbenennen dann ne tolle Fehlermeldung, dass
/var/pfad/zum/project/v1/datei.txt nicht im erlaubten Pfad
(/var/pfad/zum/project/:/usr/share/php:/tmp) enthalten wäre.
Da frag ich mich jetzt doch, wie ich das verstehen soll, zumal die Pfade
gleich sind! Kann das damit zusammenhängen, dass /var/pfad ein Symlink
auf /daten/pfad ist? In der apache-Konfiguration wird aber auch sonst
überall /var/pfad verwendet.
Viele Grüße,
Michael Vistein
Re: open_basedir Problem
am 23.06.2006 14:01:49 von Frank Schenk
Michael Vistein wrote:
> Im Projekt kommt beim umbenennen dann ne tolle Fehlermeldung, dass
>
> /var/pfad/zum/project/v1/datei.txt nicht im erlaubten Pfad
> (/var/pfad/zum/project/:/usr/share/php:/tmp) enthalten wäre.
>
> Da frag ich mich jetzt doch, wie ich das verstehen soll, zumal die Pfade
> gleich sind! Kann das damit zusammenhängen, dass /var/pfad ein Symlink
> auf /daten/pfad ist? In der apache-Konfiguration wird aber auch sonst
> überall /var/pfad verwendet.
Hallo Michael,
aus dem Handbuch:
When you want to restrict access to only the specified directory, end
with a slash. For example: "open_basedir = /dir/incl/"
Quelle: http://de2.php.net/manual/en/features.safe-mode.php
Also änder mal den open_basedir Eintrag in:
/var/pfad/zum/project:/usr/share/php:/tmp
dann sollte es gehen.
gruß, Frank
Re: open_basedir Problem
am 23.06.2006 14:29:09 von Michael Vistein
Hallo,
Frank Schenk schrieb:
> Also änder mal den open_basedir Eintrag in:
>
> /var/pfad/zum/project:/usr/share/php:/tmp
>
> dann sollte es gehen.
Nein, daran lags nicht. Das wird ja nur als Präfix gewertet, d.h. dann
dürfte auch /var/pfad/zum/project2/nedatei.txt gelesen werden, was
eigentlich unerwünscht ist.
Das Problem scheint gewesen zu sein, dass PHP beim testen
/var/pfad/zum... in /daten/pfad/zum... umwandelt, weil da eben ein
Symlink vorhanden ist. Leider wird das nicht bei den Pfaden im
open_basedir gemacht und auch nicht angezeigt, was dann zu der
merkwürdigen Fehlermeldung führt. Also muss ich überall die absoluten
Pfade angeben ...
Viele Grüße,
Michael Vistein