open_basedir /include_path Problem nach PHP-Update

mr_baumeister

New Member
Hallo,

vorweg: ich bin KEIN Server-Fachmann und habe auf einem VPS von einem Bekannten ein Update von PHP 4.4 auf 5.0 (Linux/Suse10.0) durchführen lassen. Klappt alles soweit - bis auf eine Kleinigkeit:

Ein Script (genauer eine CMS-Erweitertung) verursacht diesen Fehler:

Warning: main() [function.main]: open_basedir restriction in effect. File(/usr/share/php5/Date.php) is not within the allowed path(s): (/srv/www/vhosts/meine-domain/httpdocs:/tmp) in /srv/www/vhosts/meine-domain/httpdocs/test/typo3conf/ext/cal/res/pearLoader.php on line 38

pearLoader.php Zeile 36-38:

$path = t3lib_extMgm::extPath('cal').'res/PEAR/';
set_include_path(get_include_path(). PATH_SEPARATOR . $path);
require_once ('Date.php');


Offensichtlich kann die Datei "Date.php" nicht eingebunden werden. Stimmt, das angegebene Verzeichnis "/usr/share/php5/" ist nämlich leer. Die Datei steckt nämlich hier:
/srv/www/vhosts/meine-domain/httpdocs/test/typo3conf/ext/cal/res/PEAR/Date.php

Wo ist das Problem ? Muss ich in der php.ini was ändern ?
open_basedir =
include_path = ".:/usr/share/php"

Danke für eure Hilfe!
roger
 
Ich tippe mal drauf, dass die folgende Zeile nicht richig funktioniert.
PHP:
$path = t3lib_extMgm::extPath('cal').'res/PEAR/';

Editiere mal die entsprechende Datei und füge hinter die beide Zeile
PHP:
echo "PATH:".$path."\n";
die();
ein.

Wenn Du das Skript dann aufrufst, solltest Du den Inhalt von $path sehen können. Falls kein String ausgegeben wird, haben wir den Fehler gefunden.
 
Ach ja, der Quick+Dirty-Fix wäre in dem Fall dann

PHP:
//$path = t3lib_extMgm::extPath('cal').'res/PEAR/';
$path="/srv/www/vhosts/meine-domain/httpdocs/test/typo3conf/ext/cal/res/PEAR/";
set_include_path(get_include_path(). PATH_SEPARATOR . $path);
require_once ('Date.php');
 
Back
Top