Seite 1 von 1

Config außerhalb des Document-Root includen

Verfasst: 02.01.2007 22:50
von scheibenbrot
Hallo,
ich möchte die config.php in der common.php außerhalb des Document Roots includen.
Damit ich die Datei so includen kann muss ich folgendes Ändern:

Code: Alles auswählen

include($phpbb_root_path . 'config.'.$phpEx);
auf

Code: Alles auswählen

include($phpbb_root_path . 'www/htdocs/LOGINNAME/config.'.$phpEx);
Allerdings erhalte ich dann die Fehlermeldung:

Code: Alles auswählen

Warning: main(.//www/htdocs/LOGINNAME/config.php): failed to open stream: No such file or directory in /www/htdocs/LOGINNAME/ORDNER/phpBB2/common.php on line 216

Warning: main(.//www/htdocs/LOGINNAME/config.php): failed to open stream: No such file or directory in /www/htdocs/LOGINNAME/ORDNER/phpBB2/common.php on line 216

Warning: main(): Failed opening './/www/htdocs/LOGINNAME/config.php' for inclusion (include_path='.:/usr/share/php:..') in /www/htdocs/LOGINNAME/ORDNER/phpBB2/common.php on line 216

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/LOGINNAME/ORDNER/phpBB2/common.php:216) in /www/htdocs/LOGINNAME/ORDNER/phpBB2/common.php on line 220
(wegen der Sicherheit musste ich die Pfadangaben etwas verändern)

Mein Hoster Support teilte mir mit:
Hallo,

wenn ich mir die Zeile

include($phpbb_root_path . '/www/htdocs/LOGINNAME/config.'.$phpEx);

ansehe, komme ich auf die folgende Ursache. Wenn in der Variable $phpbb_root_path der Wert ./ steht, ist es der Fehler. Aus diesem Grund erhalten Sie die Fehlermeldung:

Warning: main(.//www/htdocs/LOGINNAME/config.php):.....

Dort finden Sie am Anfang den Punkt und den folgendes Slash zu viel. Bitte ändern Sie einmal die o.g. Zeile entsprechend ab. Danach sollte dies auch funktionieren.
Was muss ich nun in der Zeile

Code: Alles auswählen

include($phpbb_root_path . '/www/htdocs/LOGINNAME/config.'.$phpEx);
ändern, damit ich die config.php ohne Probleme includen kann (außerhalb des Document Root)??
Danke

mfg

Verfasst: 02.01.2007 23:45
von gn#36
Warum nicht einfach das tun, was der Support vorschlägt?
Lass $phpbb_root_path weg. Deine Pfadangabe beschreibt einen absoluten Pfad, das ./ dagegen einen relativen. Beides zusammen kann nicht funktionieren.
Das Forum arbeitet mit relativen Pfaden um Problemen mit unterschiedlichen Pfaden aus dem Weg zu gehen. Wenn du das aber so beschreiben willst dann darf da keine Komponente mehr von enthalten sein.

Verfasst: 02.01.2007 23:49
von PhilippK

Verfasst: 03.01.2007 00:02
von scheibenbrot
Wenn ich das mache was in So mache ich mein Board sicher steht, also:

Code: Alles auswählen

<?php
    require('/directory/config.php');
?>
bekomme ich immer noch die Fehlermeldung:

Code: Alles auswählen

Warning: main(/www/htdocs/LOGINNAME/config.php): failed to open stream: No such file or directory in /www/htdocs/LOGINNAME/ORDNER/phpBB2/config.php on line 2

Verfasst: 03.01.2007 00:18
von PhilippK
Poste doch mal bitte deine config.php. (Passwort entfernen :-))
Die Warnung kommt nicht von

Code: Alles auswählen

require('/directory/config.php');
Gruß, Philipp

Verfasst: 03.01.2007 00:21
von scheibenbrot
Wenn ich auf die gleiche Datei innerhalb der Document Roots verweise funktioniert alles.
Hier mal die config.php:

Code: Alles auswählen

<?php


// phpBB 2.x auto-generated config file
// Do not change anything in this file!

$dbms = 'mysql';

$dbhost = 'localhost';
$dbname = 'zensiert';
$dbuser = 'zensiert';
$dbpasswd = 'zensiert';

$table_prefix = 'phpbb_';

define('PHPBB_INSTALLED', true);

?>

Verfasst: 03.01.2007 00:28
von gn#36
Ein require würde allerdings keine Warning sondern einen Error mit Abbruch erzeugen.
Hast du ein Include verwendet?
Oder fehlt da noch ein Teil der Fehlermeldung?

Evtl. hat der User des Webservers keinen Zugriff auf das Verzeichnis? (Wobei ich dann eigentlich einen Fehler "permission denied" erwarten würde)

Verfasst: 03.01.2007 00:38
von scheibenbrot
Das Problem lag an einem verzeichnisschutzt, danke für eure hilfe :oops: