include_once() Fehler bei pear Datei /HTML/Common.php

Gesperrt
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

include_once() Fehler bei pear Datei /HTML/Common.php

Beitrag von GaMbIt_ »

Hallo Leute,

ich hab nach der fehlerfreien Installation probleme mit dem Backend und vermutlich auch mit dem Frontend.
Das kann ich aber nicht bestätigen da ich Contenido ohne Beispielinhalte installiert hab.

Wenn ich auf die Backend Login Seite komme spuckt mir PHP eine etwas komische Fehlermeldung aus..

Code: Alles auswählen

Warning: include_once() [function.include-once]: Unable to access ./HTML/Common.php in /home/srv/webs/kunde/web/contenido/includes/api/functions.api.general.php on line 189
der include path sollte stimmen...

Code: Alles auswählen

.:..:/usr/share/php:/usr/share/pear
open_basedir :

Code: Alles auswählen

/home/srv/webs/kunde/:/tmp/
Ich habe keine Ahnung woran das liegen könnte...
die Ausgabe der includes aus /contenido/includes/api/functions.api.general.php gibt mir alle Pfade korrekt aus:

Code: Alles auswählen

/home/srv/webs/kunde/web/contenido/includes/cfg_sql.inc.php
/home/srv/webs/kunde/web/contenido/includes/functions.general.php
/home/srv/webs/kunde/web/conlib/prepend.php
/home/srv/webs/kunde/web/contenido/includes/functions.i18n.php
/home/srv/webs/kunde/web/contenido/classes/class.cec.php
/home/srv/webs/kunde/web/contenido/classes/class.cec_hook.php
/home/srv/webs/kunde/web/contenido/includes/config.chains.php
/home/srv/webs/kunde/web/contenido/includes/functions.i18n.php
/home/srv/webs/kunde/web/contenido/classes/class.xml.php
/home/srv/webs/kunde/web/contenido/classes/class.genericdb.php
/home/srv/webs/kunde/web/contenido/classes/class.properties.php
/home/srv/webs/kunde/web/contenido/classes/drivers/class.gdb.driver.php
/home/srv/webs/kunde/web/contenido/classes/class.security.php
/home/srv/webs/kunde/web/contenido/classes/class.genericdb.php
/home/srv/webs/kunde/web/contenido/classes/class.lang.php
/home/srv/webs/kunde/web/contenido/includes/functions.api.string.php
/home/srv/webs/kunde/web/contenido/includes/functions.api.images.php
/home/srv/webs/kunde/web/contenido/classes/class.navigation.php
/home/srv/webs/kunde/web/contenido/classes/class.template.php
/home/srv/webs/kunde/web/contenido/classes/class.backend.php
/home/srv/webs/kunde/web/contenido/includes/cfg_sql.inc.php
/home/srv/webs/kunde/web/contenido/includes/functions.i18n.php
/home/srv/webs/kunde/web/contenido/classes/class.table.php
/home/srv/webs/kunde/web/contenido/classes/class.notification.php
HTML/Common.php
/home/srv/webs/kunde/web/contenido/classes/class.htmlelements.php
/home/srv/webs/kunde/web/contenido/classes/class.ui.php
/home/srv/webs/kunde/web/contenido/classes/class.phpmailer.php
/home/srv/webs/kunde/web/contenido/classes/class.request.password.php
Irgendwie komm ich da nicht weiter ;)
MichFress
Beiträge: 750
Registriert: Mo 5. Jan 2004, 22:32
Wohnort: Bochum
Kontaktdaten:

Beitrag von MichFress »

Müsste "/usr/share/pear" nicht auch im open_basedir drinstehen?
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Beitrag von GaMbIt_ »

Sodele... ich bin ein Stückchen weiter...

und bei der functions.api.general.php angekommen...

in einer switch schleife steht da für den include von pear Dateien folgendes...

Code: Alles auswählen

      case "pear":
            $include = $what;
            $include_path = ini_get('include_path');
						
						


            if (!preg_match("|".$cfg['path']['pear']."|i", $include_path)) {
               // contenido pear path is not set in include_path

               // we try to add it via ini_set
               if (!@ini_set( 'include_path' , $include_path.PATH_SEPARATOR.$cfg['path']['pear'])) {
                  // not able to change include_path
                  trigger_error("Can't add {$cfg['path']['pear']} to include_path", E_USER_NOTICE);
                  $include = $cfg['path']['pear'] . $what; unset($where);
               } else {

                  $paths = explode(PATH_SEPARATOR, ini_get('include_path'));
                  $last = count($paths)-1;
                  if ($last >= 2) {
                     $tmp = $paths[1];
                     $paths[1] = $paths[$last];
                     $paths[$last] = $tmp;
                     ini_set( 'include_path' ,implode(PATH_SEPARATOR, $paths));
// GaMbIt DEBUG
//echo implode(PATH_SEPARATOR, $paths);
                  }
                  unset ($paths, $last, $tmp);

               }
            }
später wird einfach nur die $include eingebunden...

Ich wundere mich nur wieso nicht der gesamte Pfad in die $include geschrieben wird sondern nur der letzte Teil...
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Beitrag von GaMbIt_ »

Nachtrag:

Ich habe die Pfade kontrolliert, bin zweimal durch die functions.api.general.php gerattert um einen Fehler oder ein falsche Config ausfindig zu machen und bin zum Schluss gekommen dass alles sauber funktioniert.

der include_path wird mit ini_set() korrekt erweitert...
Der include_once() Befehl sauber gefüttert...

Nachdem der SafeMode auf Off gestelt ist funktioniert der Zugriff wundersamerweise...

Das kanns doch nicht sein.. oder?
Gesperrt