Axude PHP, MySQL, Apache, Debian, et bien d'autres!
  • scissors
    octobre 15th, 2010neriqueMySQL

    phpMyAdmin est un incontournable dans le monde de MySQL pour qui veut gérer ses bases de données.

    Mais il existe des alternatives! Déjà, en version desktop, celles proposées par MySQL qui sont MySQL Administrator et MySQL Query Browser.
    Si ces ou

    tils fonctionnent parfaitement, on ne peut pas dire que l’erognomie soit parfaite, notamment pour le query browser.

    Nous allons donc aujourd’hui découvrir ensemble Chive.

    Pour l’installer:

    wget -O - http://launchpad.net/chive/trunk/0.3.0/+download/chive_0.3.0.tar.gz|tar -xzp

    Cette commande va télécharger l’archive et l’extraire dans un répertoire nommé chive.
    Pensez donc à l’executer

    depuis votre document root Apache afin que celui-ci soit accessible par votre navigateur.

    Voici un tableau disponible sur le site de Chive et comparant les différents outils de gestion en mode Web de MySQL (Chive, phpMyADmin, SQL Buddy)

    Je ne peux que vous conseiller de créer un virtual host dédié, comme il est d’ailleurs conseillé de le faire sur un phpmyadmin en mettant autre chose que phpmyadmin.mondomaine.com pour éviter les attaques sur les urls trop communément utilisées (j’en ai fait les frais)

    vi /etc/apache2/sites-available/chive
    <VirtualHost *>
            ServerName monchive.mondomaine.com
            DocumentRoot /var/www/chive/
            CustomLog /var/log/apache2/chive.log combined
            ErrorLog /var/log/apache2/chive_err.log
            <Directory /var/www/chive/>
                    Order Deny,Allow
            </Directory>
    </VirtualHost>
    a2ensite chive

    On peut ensuite se rendre à l’url: http://monchive.mondomaine.com

    En testant la première fois, j’ai obtenu l’erreur

    Warning: CApplication::require(protected/config/main.php) [capplication.require]: failed to open stream: No such file or directory in /home/web/chive/yii/base/CApplication.php on line 100
    
    Fatal error: CApplication::require() [function.require]: Failed opening required 'protected/config/main.php' (include_path='/home/web/library/') in /home/web/chive/yii/base/CApplication.php on line 100

    Editez le fichier

    vi /var/www/chive/index.php

    Modifiez la ligne

    $app = Yii::createWebApplication('protected/config/main.php');
    et changez la par
    $app = Yii::createWebApplication('./protected/config/main.php');

    Voilà vous avez donc accès à Chive et à toutes ses fonctionnalités, dont un éditeur SQL avec syntaxe colorée, très pratique!
    Abusez aussi des routines, c’est merveilleux.

    Une chose me manque toutefois, car je gère plusieurs serveurs mysql. Je ne vais pas taper à la main à chaque fois le nom d’hôte de chaque machine, on va donc modifier un peu le code pour mettre ça en place :)

    Trois étapes pour cela
    - On édite le fichier de config pour y ajouter la liste des hôtes à gérer

    vi /var/www/chive/protected/config/main.php

    on va ligne 228 du fichier, et on rajoute dans le tableau params une nouvelle entrée nommée hosts sous forme de tableau

    on remplace
    'params' => array(
            'iconPack' => 'fugue',
            'version' => '0.3.0',
    ),
    PAR
    // application-level parameters
    'params' => array(
            'iconPack' => 'fugue',
            'version' => '0.3.0',
            //host list for connection
            'hosts' => array(
            'NOM HOTE 1 DANS LA SELECT BOX' => 'monhote1.mondomaine.com',
            'NOM HOTE 2 DANS LA SELECT BOX'  => 'monhote2.mondomaine.com',
            'NOM HOTE 3 DANS LA SELECT BOX' => 'monhote3.mondomaine.com'
            ),
    ),

    - on a maintenant défini les paramètres, il faut les utiliser dans le page de login

    vi /var/www/chive/protected/views/site/login.php

    aux alentours de la ligne 78, on remplace le champ texte ‘host’ par une select box (on garde toujours l’ancien en commentaire au cas ou)
    Pour accéder au tableau hosts défini dans le fichier de config: Yii::app()->params['hosts']

    On remplace
    <?php //echo CHtml::activeTextField($form, 'host', array('class'=>'text')); ?>
    PAR
    <?php
    	//echo CHtml::activeTextField($form, 'host', array('class'=>'text'));
    	echo CHtml::activeDropDownList($form, 'host', Yii::app()->params['hosts'], array('class'=>'text'));
    ?>

    Enfin, on fait un peu de CSS, c’est pas jojo sans ça

    vi /var/www/chive/themes/standard/css/form.css

    Au début du fichier, il y a le bloc

    input[type=text],
    input[type=password],
    input[type=submit],
    input[type=reset],
    input[type=button],
    textarea {
            background-color: #F7F7F7;
            border: solid 1px #CCC;
            color: #333;
            padding: 4px 0px 4px 4px;
    }

    On y ajoute input[type=select]

    input[type=select],
    input[type=text],
    input[type=password],
    input[type=submit],
    input[type=reset],
    input[type=button],
    textarea {
            background-color: #F7F7F7;
            border: solid 1px #CCC;
            color: #333;
            padding: 4px 0px 4px 4px;
    }
    vi /var/www/chive/themes/standard/css/style.css

    ligne 158, après le bloc #login input

     #login input
      {
            font-size: 18px;
            padding: 3px;
      }
    
      #login select
      {
            font-size: 18px;
            padding: 3px;
      }

    On ajoute un bloc #login select

    #login select
      {
            font-size: 18px;
            padding: 3px;
            background-color: #F7F7F7;
      }

    Et voilà une image pour voir ce que ca donne!

    Tags: , , , , ,