Xen Orchestra

Sign in or create your account | Project List | Help

Issue 36: PDO required

Reported by deneux, Jan 28, 2011

Bonjour,

je rencontre quelques problèmes lors de l'installation de XO.
Tout d'abord Xen tourne sur une Debian Lenny (noyau: 
2.6.26-2-xen-amd64). Architecture LAMP.

Après avoir installé/configuré XO en suivant ce tuto:
http://www.davidgis.fr/blog/index.php?2010/07/11/717-xen-orchestra-so
us-debian-lenny-utilisation-avec-postgresql

A noter que j'ai téléchargé la version la plus récente de XO 
contrairement au tuto ci-dessus.

J'obtiens l'erreur suivante:
Warning: require_once(libs/PDO.php) [function.require-once]: failed 
to open stream: No such file or directory in 
/etc/xen-orchestra-master/libs/prepend.php  on line 36

Fatal error: require_once() [function.require]: Failed opening 
required 'libs/PDO.php' 
(include_path='/etc/xen-orchestra-master:.:/usr/share/php:/usr/share/
pear') in /etc/xen-orchestra-master/libs/prepend.php on line 36

J'ai vérifié que PDO & PDO_MYSQL était bien géré par mon 
php ( -> phpinfo() ). J'ai commencé à "bricoler" un 
peu en déclarant les exentions (pdo.so & pdo_mysql.so) et en 
rajoutant deux fichiers dans /xen-orchestra-master/libs:

Config.php:
<?php
// Configuration de PDO
define('MYPDO_HOST', 'localhost');
define('MYPDO_NOM_BASE', 'xendb');
define('MYPDO_LOGIN', 'orchestroot');
define('MYPDO_PASS', '0rk3str@');
define('MYPDO_TYPE_BASE', 'mysql');
?>

PDO.php: 
<?php
require_once 'config.php';
class PDO {
        private $host = NULL;
        private $nomBase = NULL;
        private $login = NULL;
        private $pass = NULL;
        private $typeBase = NULL; 
        private $bd = NULL;
        private $pdo_st = NULL;
        private $erreur = NULL;
        private $transaction_active = false;
        private static $myInstance = NULL;
        private function __construct()
        {
                $this->host = MYPDO_HOST;
                $this->nomBase = MYPDO_NOM_BASE;
                $this->login = MYPDO_LOGIN;
                $this->pass = MYPDO_PASS;
                $this->typeBase = MYPDO_TYPE_BASE;

                try
                {
                        $this->bd = new 
PDO('mysql:host='.$this->host.';dbname='.$this->nomBase, 
$this->login, $this->pass);
                        
$this->bd->setAttribute(PDO::ATTR_ERRMODE, 
PDO::ERRMODE_EXCEPTION); 
                        $this->requete("set names 
utf8"); //met les réltats des requês en utf-8;
                }
                catch (PDOException $pdoe)
                {
                        echo "<p>Erreur myPDO : 
<b>" . $pdoe->getMessage() . 
"</b></p>";
                }
        }

... 

Cela a résolu mon erreur.
Cependant une autre apparait:

Warning: 
parse_ini_file(/etc/xen-orchestra-master/xen-orchestra.conf) [functio
n.parse-ini-file]: failed to open stream: No such file or directory 
in /etc/xen-orchestra-master/libs/ConfigIniFile.php  on line 32

Warning: 
parse_ini_file(/etc/xen-orchestra-master/xen-orchestra.conf) [functio
n.parse-ini-file]: failed to open stream: No such file or directory 
in /etc/xen-orchestra-master/libs/ConfigIniFile.php on line 32

Fatal error: Uncaught exception 'Exception' with message 'No 
database entry in the configuration.' in 
/etc/xen-orchestra-master/libs/Database.php:54 Stack trace: #0 
/etc/xen-orchestra-master/libs/Database.php(27): 
Database->__construct() #1 
/etc/xen-orchestra-master/libs/Model.php(261): 
Database::get_instance() #2 
/etc/xen-orchestra-master/libs/Model.php(86): 
Model::get_user('guest') #3 
/etc/xen-orchestra-master/htdocs/index.php(36): 
Model::get_current_user() #4 
/etc/xen-orchestra-master/htdocs/index.php(89): dom0s_json() #5 
{main} thrown in /etc/xen-orchestra-master/libs/Database.php on line 
54


Je ne vais pas débugger cette erreur car je pense avoir un 
problème en amont. La mise en place de XO me parait beaucoup simple 
que ce que je suis entrain de faire.

Je suis donc à la recherche de pistes pour mener à bien mon 
installation.
Merci de votre compréhension.

Cordialement.

Mickael Deneux

Comment 1 by deneux, Jan 28, 2011

tttsss...grosse erreur de ma part. Après réinstallation de XO j'ai 
oublié de renommer le fichier "xen-orchestra.conf.dist"

Cependant je n'arrive pas à me co à ma base de données. Quand je 
rentre l'utilisateur et le mdp et clique sur "login" 
j'obtiens l'erreur "Error: The database is disabled".
En tout cas je visualise correctement mes VM ce qui est un début :)
Surement un mauvais paramétrage.

Si vous avez des pistes je suis preneur.

ps: si j'enlève mon fichier PDO.php je reviens sur ma toute 
première erreur, est-ce normal?

Comment 2 by Olivier Lambert, Jan 31, 2011

Bonjour,

As tu pensé à activer la gestion de la base de données dans le 
fichier de configuration ?

Donc commenter ceci :  
;disable_database = true

Comment 3 by deneux, Feb 2, 2011

en commentant la ligne (ou en mettant la valeur à 
"false") j'obtiens l'erreur:

Fatal error: Cannot call private PDO::__construct() in 
/etc/xen-orchestra-master/libs/Database.php  on line 62

Comment 4 by Olivier Lambert, Feb 9, 2011

As tu bien vérifié la présence de l'extension php pdo et php 
postgresql ? 

La prochaine version contient un installeur qui vérifie tout ça 
pour rendre la chose plus claire... C'est en cours de dev !

Comment 5 by deneux, Feb 10, 2011

si tu parles des extension dans mon php.ini, elles sont bien 
présentes:

extension=mysql.so
extension=pdo.so
extension=pdo_mysql.so

J'attends avec impatience la prochaine version. Bon développement 
;)
Peut-être un petit "how to" pour l'accompagner?

En tout cas merci pour l'environnement pratique et agréable.

Created: 1 year 3 months ago by deneux

Updated: 1 year 3 months ago

Status: New

Followed by: 1 person

Labels:
Priority:Medium
Type:Defect