Apache und Open_basedir

SvenH

Registered User
Hallo Zusammen,

zur Zeit verzweifel ich an einem Open_basedir Problem!
Wenn ich das richtig verstanden habe, bezieht Open_basedir ja auch die Unterverzeichnisse mit ein. Nun habe ich aber an einem unsere Server folgendes Problem:

Sobald wir open_basedir für das Verzeichnis setzen, erscheinen folgende Hinweise:
Warning: %v%v() [function.%v]: open_basedir restriction in effect. File(/classes/template.php) is not within the allowed path(s): (/var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs:/tmp) in /var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs/includes/includes.php on line 2

Warning: %v%v() [function.%v]: failed to open stream: Operation not permitted in /var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs/includes/includes.php on line 2

Fatal error: %v%v() [function.require]: Failed opening required 'classes/template.php' (include_path='.:') in /var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs/includes/includes.php on line 2

Hierbei handelt es sich um einen Strato-Rootie mit Plesk.

Wenn ich Open_basedir rausnehme, lüppt alles ohne Probleme...auch google konnte mir leider nicht so wirklich weiterhelfen.

Gruß
Sven
 
Moin
"/classes/template.php" ist auch nicht innerhalb der beiden erlaubten Pfade "/var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs:/tmp"


Eventuell ein Slash am Anfang zu viel?
"classes/template.php"
 
Ja, das Slash ist zu viel, nur leider steht es auch nicht so im Script...
Der Slash wird vom System hinzugefügt..

hier ein Auszug aus dem Script:
<?php
require("classes/template.php");
require("classes/pilot.php");
require("classes/typerating.php");

dort ist kein Slash vorhanden....
habt Ihr evtl. ne Idee, wo der Slash her kommt?

Gruß
Sven
 
Jetzt kann ich nur vermuten, dass die Odner nicht da sind, wo PHP sie sucht.
Das Slash koennte kommen, weil PHP eben die Ordner nicht findet und dann versucht in / zu suchen. Aber da greift erst mal Open Base Dir.


Guck' mal, ob das mit der Ornderstruktur auch wirklich so stimmt.
 
Die Ordnerstruktur schau wie folgt aus:

/var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs/includes/includes.php
/var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs/includes/classes/template.php
/var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs/includes/classes/pilot.php
/var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs/includes/classes/typerating.php

Also, alles im grünen Bereich!
 
Und dein Skript, in welches deine requires letzendlich eingefuegt werden, befindet sich im Ordner 'includes'?
Oder ruft deine index.php im Ordner 'httpdocs' nur die includes.php auf?
Wenn ja, dann versuch mal noch ein 'includes/' bei deinem require reinzuschreiben.
 
Das Script, welches jenes ist das include.php Script.

Das merkwürdige an der ganzen Sache ist zudem, das das ganze auf einem anderen Server inkl. open_basedir funzt!
Ich verstehe das einfach nicht.. .. ein sehr merkwürdiges Phänomen.

Im Index.php steht:
<?php^Mrequire("includes/includes.php")

Gruß
Sven
 
Last edited by a moderator:
Hast du denn ausprobiert, ob es so funktioniert?
includes.php
Code:
<?php
require("includes/classes/template.php");
require("includes/classes/pilot.php");
require("includes/classes/typerating.php");
//...

[edit] das "^M" in deinem letzten Code habe ich als ungewollten Tippfehler eingestuft
 
Last edited by a moderator:
Guin said:
[edit] das "^M" in deinem letzten Code habe ich als ungewollten Tippfehler eingestuft
Naja, ^M ist im Midnight-Commander ein Zeilenumbruch ;)

Oder schonmal so probiert?
Code:
 <?php
 require("                          /var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs/includes/classes/template.php");
 require("                             /var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs/includes/classes/pilot.php");
 require("                            /var/www/vhosts/globalgamer.org/subdomains/gae/httpdocs/includes/classes/typerating.php");
 //...

Edit:
hihi, nobody is perfect.. not even the vb-Board-Programmers!
Da sollten normalerweise keine Leerzeichen rein ;)
 
Last edited by a moderator:
Joar, absolute Pfadangaben sollten funktionieren. Aber das sollte man doch eher vermeiden (falls es mal auf anderen Webspace laufen soll)?!
 
So,
melde mich nun auch mal wieder zurück!
Wir haben nun die Scripte angepasst, obwohl sie vorher auf einem anderen Server liefen.
Es gibt manchmal Dinge, die muss man einfach nicht verstehen.. ..dennoch vielen Dank für Eure Ideen und Vorschläge.

Gruß
Sven
 
Klar,

nach deinem Vorschlag:

<?php
require("includes/classes/template.php");
require("includes/classes/pilot.php");
require("includes/classes/typerating.php");
require("includes/classes/ranking.php");

Gruß
Sven
 
Back
Top