Could not find Pear DB library

  • Hallo,


    ich wollte im squirrelmail die Möglichkeit zur Verfügung stellen, das Passwort zu ändern.


    Dafür hab ich mir das addon change_sqlpass eingerichtet.


    Aber sobald ich versuche diese Funktion im squirrelmail zu nutzen (also ich gebe mein aktuelles und neues Passwort ein), bekomme ich diese Fehlermeldung:

    Zitat

    Could not find Pear DB library


    (Wenn ich ein falsches Passwort eingebe, bekomme ich das angezeigt)


    Ich habe bei mir pear folgendermaßen eingerichtet:
    apt-get install php-pear
    Über Installer von http://pear.php.net/go-pear installiert und das Paket MDB2 ist ebenfalls installiert (DB hab ich auch probiert, ging aber genauso nicht - ist ja auch bei MDB2 eigentlich nicht notwendig)
    den Pfad zum pear hab ich in include_path eingetragen (in phpinfo() ist das auch ersichtlich)
    woran kanns noch liegen?


    mfg

  • Hallo,
    ich habe das Plug-In jetzt nur einmal kurz überflogen, aber probiere zum Test doch einmal folgendes aus: Den absoluten Pfad in der functions.php vom Plug-In einzutragen:
    [PHP]/**
    * Include Pear DB class
    *
    */
    function csp_get_pear_db()
    {


    global $csp_debug;


    load_config('change_sqlpass', array('config.php'));



    // mask include errors if not in debug mode
    //
    if ($csp_debug)
    $if_statement = 'return !include_once(\'DB.php\');';
    else
    $if_statement = 'return !@include_once(\'DB.php\');';

    if (eval($if_statement))
    {
    global $color;
    bindtextdomain('change_sqlpass', SM_PATH . 'locale');
    textdomain('change_sqlpass');
    $text = _("Could not find Pear DB library");
    bindtextdomain('squirrelmail', SM_PATH . 'locale');
    textdomain('squirrelmail');
    plain_error_message($text, $color);
    exit;
    }


    }[/PHP]
    Also bei DB.php (kommt zwei mal vor!) einfach mal den absoluten Pfad (= Pear Pfad) davorsetzen. Das ist zwar keine Fehlerlösung, aber so kann man wenigstens mal sehen was dann passiert ;)


    EDIT: Ich habe das wichtigste übersehen, such dir einfach mal $csp_debug in der Konfiguration und aktiviere den Debug Modus, dann bekommst die genaue Fehlermeldung zu sehen. Denn die wird durch das @-Zeichen beim Include Befehl unterdrückt ;)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Code
    // mask include errors if not in debug mode
    //
    if ($csp_debug)
      $if_statement = 'return !include_once(\'/var/www/pear/PEAR/DB.php\');';
    else
      $if_statement = 'return !@include_once(\'/var/www/pear/PEAR/DB.php\');';


    Dann bekomm ich ne leere Seite :(


    Ich hab auch an dieser Stelle mal das MDB2.php (was ja der Nachfolger vom DB Paket ist) ausprobiert; da kommt leider genauso nix.


    Auch habe ich mal testweise die Datei DB.php aus dem Verzeichnis genommen - und siehe da, ich bekomme wieder die alte Meldung, dass die DB libary nicht gefunden wurde. Das bedeutet also, dass der die Datei offensichtlich findet und vermutlich auch einbinden kann. Nur leider kann er dann nix damit anfang - woher nun genau der Fehler kommt sehe ich leider nicht und diese Bibiliothek ist auch sehr groß...


    Ich hab jetzt angefangen die benötigten Funktionen rauszusuchen, die die DB.php eigentlich mitbringen würde... aber das ist ne langwierige Arbeit...


    Für den Fall, dass jemand ne Lösung kennt: Ich würd mich sehr darüber freun. Ich werd auch gleich nochmal meine config.php dieses plugins überprüfen. Vielleicht hab ich ja auch da etwas übersehen.


    Und dann (aber da kom ich erst morgen zu) werd ich mal die Fehler Meldungen vom PHP wieder zu Rate ziehen - die sind bei mir standardmäßig unterdrückt


    gute Nacht erstmal und danke fürs Bemühen und drüber schauen übers Plugin

  • Eventuell ist in der DB.php auch ein Syntaxfehlder, der durch das @ unterdrückt wird, ist zwar unwahrscheinlich, aber das würde die weiße Seite vielleicht erklären. Entferne also mal testweise das @ oder mach einen Syntaxcheck bei der DB.php (das geht mit php -l <datei> auf der Konsole) ;)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • hmm - also die DB.php ist sauber. Und Fehlermeldungen werden auch keine angezeigt, obwohl ich error_report auf E_ALL und display_errors auf On stehen hab (@ hab ich auch davor entfernt); Die Seite im Frame bleibt einfach weiß :(

  • Seltsam, ich werde das heute mal auf meinem Testserver installieren und testen, wenn ich Zeit habe ;)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • danke für deine Mühe ;)
    Ich glaub ich werd mir auch nochmal die beta Version (1.5) vom squirrelmail drauf machen und damit testen... bzw. in einer anderen Umgebung.

  • Zitat von benny;5912

    danke für deine Mühe ;)


    Dank mir nicht zu früh, bin leider noch nicht dazu gekommen, da ich gerade erst nach Hause gekommen bin :D



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Entschuldige die etwas verspätete Antwort. Also entweder habe ich den gleichen Fehler gemacht - falls es einen gibt - oder das ist wirklich nicht lauffähig so wie angeboten wird. Vielleicht sehe ich nochmals länger drüber, tut mir Leid, dass ich dir bisher nicht helfen konnte.


    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)