19 juin 2007

Installer et configurer son Channel PEAR.

Cet article est complément idéal (plus récent) du billet de Moosh

Préambule

Cet article décrit la mise en place d'un channel PEAR dans une configuration non standard.

  • Emplacement du dépôt PEAR spécifique
  • Base MySQL spécfique (utilisable au travers d'une socket)
  • Serveur Apache spécifique

Prérequis

On considère qu'un serveur apache et qu'un serveur MySQL fonctionne dans une arborescence semblable à ceci :

lamp
      `-----bin 
      `-----etc (Configuration Apache & MySQL)
      `-----lib
      |     `-----pear  (Dépot PEAR)
      `-----log
      `-----tmp
      `-----var
      |     `-----mysql  (Tables MySQL)
      |     `-----run
      |                      `-----mysql.sock  
      `-----www

On utilisera une commande pear spécifique nommé pear.ksh que l'on placera dans lamp/bin :


export PHP_PEAR_INSTALL_DIR="/lamp/lib/pear"
cd /lamp/lib/pear/
pear -c ./pearrc $1 $2 $3 $4

Pour la config de PEAR, il est préférable d'utiliser des chemins absolus :


/lamp/bin/pear.ksh config-set bin_dir /lamp/lib/pear/bin
/lamp/bin/pear.ksh config-set doc_dir /lamp/lib/pear/tmp/doc
/lamp/bin/pear.ksh config-set php_dir /lamp/lib/pear/
/lamp/bin/pear.ksh config-set cache_dir /lamp/lib/pear/tmp/cache
/lamp/bin/pear.ksh config-set temp_dir /lamp/lib/pear/tmp/temp
/lamp/bin/pear.ksh config-set test_dir /lamp/lib/pear/tmp/test
/lamp/bin/pear.ksh config-set data_dir /lamp/lib/pear/tmp/data
/lamp/bin/pear.ksh config-set download_dir /lamp/lib/pear/tmp/cache

Installation

2 commandes pour télécharger et installer un serveur de channel PEAR :


/lamp/bin/pear.ksh  channel-discover pear.chiaraquartet.net
/lamp/bin/pear.ksh  install -af chiara/Chiara_PEAR_Server

Patch

Avant de lancer la configuration du serveur, il faut modifier le fichier mysqlinstall.php présent dans le répertoire /lamp/lib/pear/Chiara/PEAR/Server

En gros voilà ce qu'il faut changer :

Modifier la méthode getDBConnection :


     function getDBConnection()
     {
         if (extension_loaded('mysqli')) {

            if (file_exists($this->dbhost)) {
                $host = 'localhost';
                $sock = $this->dbhost;
            }
            else {
                $host = $this->dbhost;
                $sock = null;
            }
            $conn = mysqli_connect($host, $this->user, $this->password, null, null, $sock);
         } else {
             $conn = mysql_connect($this->dbhost, $this->user, $this->password);
         }

Modifier la construction des options pour DB_DataObject (4 endroits) :


...

$host = file_exists($this->dbhost) ? 'unix('.$this->dbhost.')' : $this->dbhost;
$options = array(
             'database'         => $type . '://' . $this->user . ':' . $this->password .
             '@' . $host . '/' . $this->db,
             'schema_location'  => $datadir . '/Chiara_PEAR_Server/data/DBDataObject',
             'class_location'   => $phpdir . '/Chiara/PEAR/Server/Backend/DBDataObject/',
             'require_prefix'   => 'Chiara/PEAR/Server/Backend/DBDataObject/',

...

Configuration

Maintenant, on peut configurer le serveur avec cette commande :


/lamp/bin/pear.ksh run-scripts chiara/Chiara_PEAR_Server

On donnera des chemins absolus et comme host pour mysql on donnera le chemin absolu vers la socket.

Le "Channel Administrator Handle" correspond au login et le mot de passe de ce login doit être donné quelques questions après.

Aucun commentaire:

Publier un commentaire