DB Error: not found (module pear DB)

DB Error: not found (module pear DB) - Installation - Linux et OS Alternatifs

Marsh Posté le 27-05-2005 à 15:49:34    

J'essaie en vain d'installer un script PHP (hitweb)
Je tente de l'installer sur mon serveur de developpement local qui marche pourtant parfaitement avec d'autres scripts.
A chauqe fois j'obtiens le message d'erreur dans Firefox :

DB Error: not found


Pour installer ce script d'annuaire, il était nécessaire d'installer les packages :
- PEAR DB
- PEAR Auth
- PEAR PHPLIB
 
Etant sous Ubuntu (+dépots Debian), j'ai installé les packages :
- php4-pear
- php-auth
 
Pour PEAR PHPLIB, j'ai été sur le site officiel de PEAR récuppérer le package PHPLIB et j'ai décompressé le contenu dans le répertoire /usr/share/php
 
Voilà donc grosso modo à quoi ressemble ce répertoire :

[root]@[/usr/share/php]# ll
total 252
drwxr-xr-x  2 root root  4096 2005-05-25 17:49 Archive
drwxr-xr-x  3 root root  4096 2005-05-25 17:53 Auth
drwxr-xr-x  2 root root  4096 2005-05-25 17:49 Console
drwxr-xr-x  3 root root  4096 2005-05-25 17:49 data
drwxr-xr-x  2 root root  4096 2005-05-27 14:50 DB
drwxr-xr-x  6 root root  4096 2005-05-25 17:49 docs
drwxr-xr-x  3 root root  4096 2005-05-25 17:49 HTML
drwxr-xr-x  2 root root  4096 2005-05-25 17:53 Log
drwxr-xr-x  2 root root  4096 2005-05-25 17:49 Mail
drwxr-xr-x  2 root root  4096 2005-05-25 17:49 Net
drwxr-xr-x  2 root root  4096 2005-05-25 17:49 OS
drwxr-xr-x  4 root root  4096 2005-05-25 17:49 PEAR
drwxr-xr-x  7 root root  4096 2005-05-25 17:53 tests
drwxr-xr-x  3 root root  4096 2005-05-25 17:49 XML
-rw-r--r--  1 root root 24006 2004-07-27 19:19 Auth.php
-rw-rw-rw-  1 root root 38997 2005-02-16 04:16 DB.php
-rw-r--r--  1 root root  7839 2005-05-09 11:15 HTTP.php
-rw-r--r--  1 root root  8526 2003-01-02 05:41 Log.php
-rw-r--r--  1 root root  7331 2005-05-09 11:15 Mail.php
-rw-r--r--  1 root root  9809 2005-05-09 11:15 pearcmd.php
-rw-r--r--  1 root root 30154 2005-05-09 11:15 PEAR.php
-rw-r--r--  1 root root 17972 2005-05-09 11:15 System.php


Bref normalement, les modules exigés sont correctement installé.
 
Comment expliquer l'erreur DB Error: not found ?
J'ai bien entendu vérifié et revérifié les paramètres de connexion à la base mysql...
 
Je suis vraiment bloqué là :pfff:


Message édité par ecliptux le 27-05-2005 à 22:45:38

---------------
Il existe mille manières d'agir, et une seule de ne rien faire.
Reply

Marsh Posté le 27-05-2005 à 15:49:34   

Reply

Marsh Posté le 27-05-2005 à 17:25:35    

Je ne pense pas que tu obtiennes une réponse ici, ton erreur est propre à ton script, essaie dans la partie programmation.


---------------
"The marketing guys said the HP-35 would be a failure because it was too small, and then we couldn't make them fast enough to meet the demand. The marketing folks don't know everything." - Bill Hewlett
Reply

Marsh Posté le 27-05-2005 à 17:28:47    

Je me disais que ça pouvait plus venir du module DB mais tu as peut-être raison.
Y a-t-il moyen de tester le module DB puisqu'il semble être à l'origine du pb (ou en parti) ?


---------------
Il existe mille manières d'agir, et une seule de ne rien faire.
Reply

Marsh Posté le 27-05-2005 à 17:29:27    

Euh la première chose à faire est de consulter pear.php.net à la recherche de la doc pour ce module, je pense.


---------------
"The marketing guys said the HP-35 would be a failure because it was too small, and then we couldn't make them fast enough to meet the demand. The marketing folks don't know everything." - Bill Hewlett
Reply

Marsh Posté le 27-05-2005 à 22:39:21    

Bon je m'y suis collé, même si c'est relativement indigeste....
j'ai donc trouvé à cette adresse un script de test.
Le voici :

<?php
require_once 'DB.php';
 
//$dsn = 'pgsql://someuser:apasswd@localhost/thedb';
$dsn = 'mysql://root:password@localhost';
$options = array(
    'debug'       => 2,
    'portability' => DB_PORTABILITY_ALL,
);
 
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    echo "Ca marche pas :( <br>";
        die($db->getMessage());
 
}
 
echo "Ca marche :)";
 
// ...
 
$db->disconnect();
?>


J'ai modifié 2-3 trucs et j'ai notamment renseigné la ligne $dns=.......
Si je mets le bon password, le test est positif.
Si je mets un mot de passe erroné, j'obtiens le fameux message DB Error: not found, en plus de mon petit message ;)
 
Bref visiblement, il est nécessaire de bien paramétrer cette ligne.
Le soucis vient donc visiblement de là : le script doit probablement être mal renseigné à ce niveau.
Je vais voir si l'auteur a une idée car en effet, je ne pense pas que vous pourrez me dépanner plus sur ce coup :)


Message édité par ecliptux le 27-05-2005 à 22:44:56

---------------
Il existe mille manières d'agir, et une seule de ne rien faire.
Reply

Marsh Posté le 27-05-2005 à 23:16:15    

Hum, j'ai déjà bossé avec PEAR, il me semble qu'il faut indiquer à PHP le chemin d'include dans php.ini. Oui c'est ça. il faut vérifier que dans la variable include_path on a /usr/share/php

Reply

Marsh Posté le 27-05-2005 à 23:45:36    

Je viens d'éditer le fichier /etc/php4/apache2/php.ini de la façon suivante :

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
 
; UNIX: "/path1:/path2"  
include_path = "/usr/share/php"


j'ai redémarré apache2 mais ça n'a rien changé.
Pourtant j'y croyais fort :D


---------------
Il existe mille manières d'agir, et une seule de ne rien faire.
Reply

Marsh Posté le 28-05-2005 à 00:11:44    

ha ouais, j'avais mal lu ton explication originale, ça ne changera rien effectivement puisque PEAR est bien pris en compte.
Je ne vois pas d'autres solutions là. Tu es sûr d'avoir installer PEAR correctement en suivant la procédure d'install?
Sinon il y a l'outil en ligne de commande pear qui fonctionne plus ou moins comme apt-get, essaie de faire une msise à jour (man pear) voir si ça passe mieux.
Et je suis étonné de voir PHPLIB, c'est pas une lib qui date du temps de php3 dont les fonctionnalités sont arrivées dans la version 4 de PHP?

Reply

Marsh Posté le 28-05-2005 à 00:22:28    

PEAR est bien installé car lorsque j'ai installé le script au tout début, je me suis farci moultes erreurs au sujet de PEAR (notamment avec Auth et PHPLIB)
Concernant PHPLIB, je n'en sait trop rien : ce package n'était en effet pas dispo avec apt-get, chose étrange car dans 98% je trouve ce que je veux tant il y a de packages dispo !
Comme j'avais l'erreur PHPLIB qui persistait, j'ai installé manuellement le package en copiant le fichier PHPLIB.php dans /usr/share/php/HTML/Template/
Ensuite l'erreur PHPLIB a disparue mais c'est là que "DB Error: not found" a surgit....


---------------
Il existe mille manières d'agir, et une seule de ne rien faire.
Reply

Marsh Posté le 28-05-2005 à 00:28:55    

Citation :

Concernant PHPLIB, je n'en sait trop rien : ce package n'était en effet pas dispo avec apt-get


En effet avec apt-get surement pas dispo mais il y a l'outil "pear" cf là : http://pear.php.net/manual/fr/installation.cli.php

Reply

Marsh Posté le 28-05-2005 à 00:28:55   

Reply

Marsh Posté le 28-05-2005 à 01:08:10    

Ah oui c'est pas mal ce truc !
Mais bon... ça ne fait pas non plus avancer le truc car phplib n'y est pas.
Et puis bon... il semble qd même bien installé sur mon système (voir test ci-dessus)


---------------
Il existe mille manières d'agir, et une seule de ne rien faire.
Reply

Marsh Posté le 28-05-2005 à 11:46:07    

Essaye le script disponible à cet adresse pour obtenir plus d'informations : http://pear.php.net/manual/en/pack [...] -error.php

Reply

Marsh Posté le 28-05-2005 à 12:44:11    

J'ai essayé avec le script que tu m'as donné

<?php
require_once 'DB.php';
 
//$db =& DB::connect('pgsql://wronguser:badpw@localhost/thedb');
$db =& DB::connect('mysql://root:password@localhost');
if (PEAR::isError($db)) {
    /*
     * This is not what you would really want to do in
     * your program.  It merely demonstrates what kinds
     * of data you can get back from error objects.
     */
    echo 'Standard Message: ' . $db->getMessage() . "\n";
    echo 'Standard Code: ' . $db->getCode() . "\n";
    echo 'DBMS/User Message: ' . $db->getUserInfo() . "\n";
    echo 'DBMS/Debug Message: ' . $db->getDebugInfo() . "\n";
    exit;
}
 
echo "Ca marche :)";
 
?>


 
... mais je n'ai pas d'erreur : à l'exécution j'ai le message "Ca marche"
 :sarcastic:


---------------
Il existe mille manières d'agir, et une seule de ne rien faire.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed