David: Include von php dateien

hallo

ich will ne .php in eine .php includen, jetzt kommt folgende meldung:

Warning:  main() [function.main]: open_basedir restriction in effect. File(/usr/local/lib/php/news.inc.php) is not within the allowed path(s): (/usr/local/apache/www/web2/) in /usr/local/apache/www/web2/html/news/index.php on line 34

Warning:  main(news.inc.php) [function.main]: failed to create stream: Operation not permitted in /usr/local/apache/www/web2/html/news/index.php on line 34

Warning:  main() [function.main]: Failed opening 'news.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /usr/local/apache/www/web2/html/news/index.php on line 34

d.h. die news.inc.php liegt in /usr/local/lib/php/ obwohl ich die in /html/news/ drin hab??

wer kann helfen? danke!

  1. hallo David,

    Warning:  main() [function.main]: open_basedir restriction in effect. File(/usr/local/lib/php/news.inc.php) is not within the allowed path(s): (/usr/local/apache/www/web2/) in /usr/local/apache/www/web2/html/news/index.php on line 34

    Was ist an dieser Meldung so unverständlich? Und was steht denn in Zeile 34 deiner index.php? Wie ist $basedir definiert?

    d.h. die news.inc.php liegt in /usr/local/lib/php/ obwohl ich die in /html/news/ drin hab?

    Es ist wenig wahrscheinlich, daß du ein "echtes" Verzeichnis /html/news hast, weit wahrscheinlicher ist, daß "/" bereits /usr/local/apache/www/web2 sein _soll_ (halte ich nicht für besonders glücklich)  -  aber aus irgendwelchen Gründen nicht ist. Das muß nicht unbedingt in deinem PHP-Script drinstehen, aber es könnte in der httpd.conf als DocumentRoot so vorgegeben sein, worauf auch die anderen Meldungen schließen lassen. Du kannst nicht einfach auf Verzeichnisse verlinken bzw. dort liegende Dateien includieren, die nicht unterhalb des DocumentRoot liegen.

    Um welches System und um welchen Apache (Version) handelt es sich eigentlich?

    Grüße aus Berlin

    Christoph S.

  2. Hi,

    Warning:  main() [function.main]: Failed opening 'news.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /usr/local/apache/www/web2/html/news/index.php on line 34

    d.h. die news.inc.php liegt in /usr/local/lib/php/ obwohl ich die in /html/news/ drin hab??

    Es sieht so aus, als ob du in er index.php sagst:
    include("/usr/local/lib/php/news.inc.php");

    So ähnlich sagt es die Fehlermeldung. Du sagst aber, das die Datei in html/news drin liegt.

    Das wird der Fehler sein. index.php findet die include-datei nicht.

    Gruß
    Scooter