GoldZone Web Hosting

Rédigé par Gaëtan Trellu (goldyfruit)

Outils pour utilisateurs

Outils du site


installation_de_la_version_de_developpement

Procédure d'installation de la version de développement.

Dernière mise à jour : 18/10/2009

Cette procédure est destinée à l'installation de la version de développement du Panel-GZW.
Aucun aucun cas cette dernière doit-être utilisée en production !

Pour le moment seule la procédure pour la distribution Debian GNU/Linux sera fournie. Il ne devrait pas être compliqué de l'adapter pour une autre distribution.

Actuellement le Panel-GZW n'est pas utilisable en production.

En voici les raisons :

  • L'utilisateur MySQL qui fait tourner le daemon Perl est “root”.
  • Chaque nouvel utilisateur MySQL a pour mot de passe “test”.
  • Le daemon Perl est exécuté via l'utilisateur système “root”.
  • Les services Apache et Bind ne sont pas relancés automatiquement.
  • Le code contient encore beaucoup de bugs.

Les pré-requis.

La version finale du panel nécessitera l'utilisation du module SuExec d'Apache cependant pour le moment nous nous en passerons.
Il est nécessaire d'avoir un serveur LAMP (Linux Apache MySQL PHP) fonctionnel, si ce n'est pas le cas reportez-vous à cette adresse : http://wiki.goldzoneweb.info/

Après cette petite aparté nous pouvons enfin commencer. :p

Ce dont nous allons avoir besoin :

  1. Du module “rewrite” d'Apache afin de pouvoir utiliser l'URL Rewriting de CakePHP.
  2. De l'interpréteur Perl dans sa version 5 de préférence.
  3. D'un module Perl permettant la création d'un daemon (service).

Installation des pré-requis.

Activation du module “rewrite” d'Apache.

# a2enmod rewrite

Dans le fichier “default” présent dans le répertoire “/etc/apache2/sites-available/” il est nécessaire de remplacer toute les occurrences suivantes :

AllowOverride None

Par celle-ci :

AllowOverride All

Après ces modifications, il est nécessaire de relancer Apache afin que les changements soient pris en charge.

# /etc/init.d/apache2 reload

Installation de l'interpréteur Perl et du module nécessaire à la création du daemon (service).

# aptitude install perl libproc-daemon-perl

Nous pouvons désormais passer à l'installation du framework CakePHP.

Installation de CakePHP.

Avant d'aller plus loin, il nous faut télécharger le framework CakePHP.
Ce dernier est disponible à l'adresse suivante : http://cakeforge.org/frs/download.php/734/cake_1.2.5.tar.gz/donation=complete

Une fois l'archive téléchargée et décompressée nous la plaçons dans le répertoire “cake_1.2.5” dans le répertoire “/var/www/”.
Ensuite on renomme le répertoire “cake_1.2.5” en “panel-gzw” puis nous lui donnons au répertoire les droits “www-data”.

Voici la procédure à suivre étape par étape :

tar zxvf cake_1.2.5.tar.gz
mv cake_1.2.5 /var/www
cd /var/www
mv cake_1.2.5 panel-gzw
chown www-data:wwwa-data -R panel-gzw

L'installation est presque terminée.

Ouvrez votre navigateur préféré (Firefox :p), puis entrez l'adresse de votre serveur suivi de “/panel-gzw/”.

http://adresse-de-mon-serveur/panel-gzw/

Vous devriez obtenir le résultat suivant :

Du jaune, du vert !! Au mon dieu que se passe t-il ?
C'est tout à fait normal, il reste encore deux petites manipulations à effectuer.

  1. La première consiste à modifier le Salt de CakePHP, sans cette modification toute personne ayant télécharger la version de CakePHP sur le site officiel auront le même Salt et donc il sera “plus simple” de déchiffrer les mots de passe générés à partir de CakePHP.
  2. La seconde, elle nécessite que vous ayez une base de données MySQL créée avec un utilisateur MySQL valide.

Nous réglerons ces léger désagréments un petit plus tard, une fois que la version de développement du Panel-GZW sera téléchargée. :)

Version de développement.

La version de développement actuelle est disponible à cette ici : http://www.panel-gzw.com/wp-content/plugins/download-monitor/download.php?id=2

Une fois l'archive récupérée et décompressée vous devriez obtenir un répertoire “panel-gzw_dev_xx-xx-xx” (ou xx-xx-xx est la date de la version).

Ce répertoire a pour contenu ceci :

  1. app” (code PHP)
  2. panel-gzw” (daemon Perl)
  3. sql” (base de données MySQL)

Nous pouvons maintenant déplacer nos répertoires vers leur destination finale, à savoir que nous supprimons le répertoire “app” présent dans “/var/www/panel-gzw/” afin de le remplacer par le Panel-GZW.

  • app” va dans le répertoire “/var/www/panel-gzw/
  • panel-gzw” va dans le répertoire “/etc/
  • sql” contenant un fichier “panel-gzw.sql” sera à importer soit via PhpMyAdmin soit via un shell.

Voici la procédure étape par étape :

# rm -rf /var/www/panel-gzw/app
# mv panel-gzw_dev_xx-xx-xx/app /var/www/panel-gzw/
# mv panel-gzw_dev_xx-xx-xx/panel-gzw /etc/
# chmod 600 /etc/panel-gzw/lib/GZW.pm
# chown www-data:www-data -R /var/www/panel-gzw
# mysql -u root -p panel-gzw < panel-gzw_dev_xx-xx-xx/sql/panel-gzw.sql

Pour finaliser le tout, nous allons renseigner trois fichiers dont deux qui corrigeront les erreurs rencontrées un peu plus haut.

Dans le fichier “GZW.pm” présent dans le répertoire “/etc/panel-gzw/lib/”, il est nécessaire de renseigner les lignes de 26 à 30.
Pour ce fichier, l'utilisateur MySQL doit être l'utilisateur “root” afin d'avoir les pleins pouvoir pour la création d'utilisateurs et de bases de données MySQL.

my $database = "panel-gzw";
my $prefix = "";
my $host = "localhost";
my $login = "root";
my $password = "********";

Ensuite nous allons modifier le fichier “database.php” présent dans le répertoire “/var/www/panel-gzw/app/config/”, les modifications s'effectuent de la ligne 84 à 88.

'host' => 'localhost',
'login' => 'panel-gzw',
'password' => '*******',
'database' => 'panel-gzw',
'prefix' => '',

Ici l'utilisateur MySQL “panel-gzw” est un utilisateur ayant des droits restreints et uniquement sur la base de données MySQL “panel-gzw”.

Et pour finir, il nous reste juste à modifier le fichier “core.php” présent dans le répertoire “/var/www/panel-gzw/app/config/”, dans ce fichier à la ligne 151 modifier le Salt en remplaçant quelques caractère de la chaîne par ceux que vous désirez.

Configure::write('Security.salt', 'DYhG93b0qdfsdffs2guVodsfklhkvniR2G0FgaC9mi');

Générer le mot de passe administrateur.

Le Panel-GZW est maintenant accessible à l'adresse suivante : http://adresse-ip-du-serveur/panel-gzw/
Vous devriez voir une page de connexion avec un formulaire.

En dessous de ce formulaire doit se trouver quelque chose que cela :

Ceci est votre mot de passe chiffré à insérer dans le champ “password” de la table “users” se situant dans la base de données MySQL “panel-gzw”.

Il vous faudra modifier la ligne 52 du fichier “login.ctp” présent dans le répertoire “/var/www/panel-gzw/app/views/layouts/” en remplaçant le mot de passe entre parenthèses (’) par celui désiré.

$newAdminPassword = 'monsupermotdepasse';

Une fois le mot de passe généré et inséré dans la table, supprimez le bloc de lignes 47 à 56.

Lancement du daemon.

Nous nous approchons de la fin, il ne reste plus qu'à démarrer le daemon (service) “panel-gzwd.pl”.
Ce daemon a pour vocation de s’occuper de toute la partie système.

Par exemple :

Un utilisateur vient de créer un nouveau nom de domaine, cette action n’est pas effectuée par le panel en lui même mais par le daemon.

La création du nom de domaine se déroule donc de la manière suivante :

- Création du nom de domaine via le Panel-GZW. - Insertion de l’action dans une table nommée daemon. - Le daemon va regarder dans cette table les actions qu’il doit effectuer (à l’aide d’un code de statut). - Une fois l’action déterminée, le daemon va agir en conséquence en exécutant la procédure de création du nom de domaine. - Après création du nom de domaine le code de statut présent dans la table “robot” est mis à 0. - Fin !

Le daemon se trouve dans le répertoire “/etc/panel-gzw/bin/”, l'exécution est très simple.

# cd /etc/panel-gzw/bin
# chmod +x panel-gzwd.pl
# ./panel-gzwd.pl

On vérifie que le daemon tourne bien en tâche de fond.

# ps aux | grep panel-gzwd 

Vous devriez obtenir le résultat suivant :

root      8399  1.2  0.9   9784  5060 ?        S    Oct12  88:36 /usr/bin/perl ./panel-gzwd.pl

Les erreurs rencontrées.

Voici une liste de quelques erreurs que j'ai obtenu tout au long du développement.

Erreur 1.

Firefox me dit “Redirection de page incorrect”.

Si ce message apparaît c'est que vous avez mal renseignez le fichier “database.php” présent dans le répertoire “/var/www/panel-gzw/app/config/”.

Erreur 2.

Lorsque j'arrive sur le page de connexion j'obtiens le message d'erreur suivant :

Warning (2): mysqli_connect() [function.mysqli-connect]: (42000/1044): Access denied for user 'panel-gzw'@'%' to database 'panel-gzwcake' [CORE/cake/libs/model/datasources/dbo/dbo_mysqli.php, line 73]

Warning (2): mysqli_get_server_info() expects parameter 1 to be mysqli, boolean given [CORE/cake/libs/model/datasources/dbo/dbo_mysqli.php, line 79]

Warning (2): mysqli_query() expects parameter 1 to be mysqli, boolean given [CORE/cake/libs/model/datasources/dbo/dbo_mysqli.php, line 109]

Warning (2): mysqli_query() expects parameter 1 to be mysqli, boolean given [CORE/cake/libs/model/datasources/dbo/dbo_mysqli.php, line 109]

Warning (2): Cannot modify header information - headers already sent by (output started at /var/www/utilisateurweb01/www/dev/cake/Panel-GZW/cake/basics.php:109) [CORE/cake/libs/controller/controller.php, line 644]

Si ce message apparaît c'est que vous avez mal renseignez le fichier “database.php” présent dans le répertoire “/var/www/panel-gzw/app/config/”.

installation_de_la_version_de_developpement.txt · Dernière modification: 2011/01/05 16:05 (modification externe)