Re : Configuration multi-sites en production

Je te prends pas pour un demeuré ...

Le tuto sera plus lisible ce soir.

pour tes projets : site1, site2, site3 tu regarde comment j'ai fais dans mon tuto pour premierProjet et secondProjet.

et pour le dossier Public, tu le renomme comme tu veux Tartenpion, Toto, ... il suffit juste de faire pointer tes virtualhost sur le bon dossier pour pouvoir booter dessus.

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

12

Re : Configuration multi-sites en production

Pas besoin de sous!

On veut juste se voir avec une connexion internet! pas de chichi! on va pas la jouer canapé et tout le tralala! smile
Je suis sûr qu'il y a moyen de trouver un lieu (d'abord il n'y a pas besoin de bien grand je pense smile ), sans payer ou presque!
Bon ben occupe toi bien de la mariée en attendant!

13

Re : Configuration multi-sites en production

Sinon tu peux suivre le sujet sur le forum que ÉcureuilVirtuel t'a filé. C'était une façon intéressante de procéder.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : Configuration multi-sites en production

Petite MAJ Hoa debutant effectuée !!

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

Re : Configuration multi-sites en production

Salut,

Tu y arrives ??

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

16

Re : Configuration multi-sites en production

Bonsoir à tous,

Bon désolé pour mon emportement de l'autre jour...
Mais ça m'énerve je nage dans les choux!!!

Je viens encore de passer une heure sans succès....

Voici mon arborescence pour le dossier home/joris/Developpement/Hoa_Framework_Multi/

|-- Hoa_Framework/
|   |-- Data/
|   |-- Framework/
|-- Site1/
|   |-- Controller/
|   |-- Model/
|   |-- Public/
|   |-- View/
|-- Site2/
|   |-- Controller/
|   |-- Model/
|   |-- Public/
|   |-- View/

Ensuite j'ai essayé de modifier mon fichier Hoa_Framework_Multi/Hoa_Framework/Data/Etc/Configuration/HoaFramework.json comme suit:

{
    /**
     * Keywords.
     */
    "keywords": {
        "root.ofFrameworkDirectory"      : null
    },

    /**
     * Parameters.
     */
    "parameters": {
        "root"                           : "(:root.ofFrameworkDirectory:)",
        //"root"                           : "/home/joris/Developpeur/Hoa_Framework_Multi",
        
        "root.framework"                 : "(:%root:)/Hoa_Framework",
        "root.data"                      : "(:%root.framework:h:)/Data",
        "root.application"               : "(:%root:)",

        "framework.core"                 : "(:%root.framework:)/Core",
        "framework.library"              : "(:%root.framework:)/Library",
        "framework.module"               : "(:%root.framework:)/Module",
        "framework.optional"             : "(:%root.framework:)/Optional",

        "data.module"                    : "(:%root.data:)/Module",
        "data.optional"                  : "(:%root.data:)/Optional",

        "protocol.Application"           : "(:%root.application:)/",
        "protocol.Application/MonSite1"  : "(:%root.application:)/Site1/",
        "protocol.Application/MonSite2"  : "(:%root.application:)/Site2/",

        "protocol.Data"                  : "(:%root.data:)/",
        "protocol.Data/Etc"              : "(:%protocol.Data:)Etc/",
        "protocol.Data/Etc/Configuration": "(:%protocol.Data/Etc:)Configuration/",
        "protocol.Data/Etc/Locale"       : "(:%protocol.Data/Etc:)Locale/",
        "protocol.Data/Lost+found"       : "(:%protocol.Data:)Lost+found/",
        "protocol.Data/Module"           : "(:%data.module:)/",
        "protocol.Data/Optional"         : "(:%data.optional:)/",
        "protocol.Data/Variable"         : "(:%protocol.Data:)Variable/",
        "protocol.Data/Variable/Cache"   : "(:%protocol.Data/Variable:)Cache/",
        "protocol.Data/Variable/Database": "(:%protocol.Data/Variable:)Database/",
        "protocol.Data/Variable/Log"     : "(:%protocol.Data/Variable:)Log/",
        "protocol.Data/Variable/Private" : "(:%protocol.Data/Variable:)Private/",
        "protocol.Data/Variable/Test"    : "(:%protocol.Data/Variable:)Test/",
        "protocol.Data"                  : "(:%root.data:)/",
        "protocol.Framework"             : "(:%root.framework:)/"
    }
}

Seulement voici le résultat de la commande protocol:print :

hoa://
  Application
  Data
    Etc
      Configuration
      Locale
    Lost+found
    Module
    Optional
    Variable
      Cache
      Database
      Log
      Private
      Test
    Bin
  Framework

Donc déjà le dossier Application est toujours présent, et ensuite nulle trace de mes deux sites... hmm

Ensuite je n'ai pas trouver où configurer le fait que mes dossiers Public/ s'appellent www/

Et pour finir, comment faire pour avoir une configuration de base de donnée par application?

Merci d'avance!

17

Re : Configuration multi-sites en production

Hey smile,

On reprend.
Hoa est composé de deux entités : framework et (data et application). Jusque là, ça se comprend assez bien. Le framework est capable d'exister une seule fois pour plusieurs applications. Chaque application est composé de deux entités/dossiers : les données et l'application elle-même.

Donc si on devait avoir une architecture, ce serait celle-ci :

$ hoa tree .
./
|-- Hoa/
|   |-- Framework/
|-- Site1/
|   |-- Application/
|   |-- Data/
|-- Site2/
|   |-- Application/
|   |-- Data/

Hoa ne doit pas forcément être au même niveau que les sites Web. Sur mon serveur, je place Hoa dans /var/hoa et je fais les liens depuis mes applications avec le include_path. Peu importe, tu t'organises comme tu veux.

Ensuite, chaque site fonctionne comme tu le sais déjà. Tu vas ouvrir le fichier Site1/Data/Etc/Configuration/HoaCore.json et redéfinir les racines.

Ok, on va prendre un cas très concrès.
Je place Hoa/Framework/ dans /var/hoa/. Ainsi :

$ svn co http://svn.hoa-project.net/Framework/Trunk/Framework /var/hoa
$ hoa tree -d 1 /var/hoa
var/hoa/
|-- Core/
|-- Library/
|-- Module/
|-- Optional/

On a le contenu du dossier Framework dans /var/hoa. Simple.

On se place dans ~/Development/ et on va créer notre Site1 ok ?

$ cd ~/Development/
$ mkdir Site1
$ cd Site1
$ svn co http:/svn.hoa-project.net/Framework/Trunk/Data Data
$ hoa tree -d 2 .
./
|-- Data/
|   |-- Bin/
|   |-- Etc/
|   |-- Lost+found/
|   |-- Module/
|   |-- Optional/
|   |-- Temporary/
|   |-- Variable/

Tu vois qu'on utilisait la ligne de commande hoa un peu partout, c'est à titre de démonstration. La ligne de commande est placée dans Data/Bin/, donc on va se faire nos propres commandes pour chacun de tes sites ok ? C'est parti :

$ pwd
~/Development/Site1/
$ cd Data/Bin/
$ sudo ln -s `pwd`/hoa /usr/bin/site1

Maintenant, on a la commande site1 qui existe, mais il faut faire une dernière modification. On va ouvrir Hoa.php situé dans ~/Development/Site1/Data/Bin/ (là où on est déjà normalement) pour changer le chemin d'inclusion. Ainsi, on aura :

ini_set('include_path', '/var/hoa/Core/' .
                        PATH_SEPARATOR .
                        get_include_path());

C'est bon, on a lié les données au framework, tout fonctionne bien. Il reste juste à configurer les racines pour le protocole hoa://. Là, ça va être un peu chiant. On va modifier 3 fichiers : Data/Etc/Configuration/HoaCore.json, son équivalent en cache et Data/Bin/Hoa.php (que l'on vient de modifier). Ok. C'est parti alors :

$ pwd
~/Development/Site1/
$ cd Data/Etc/Configuration/
$ vi HoaCore.json
// on fait ce qu'il faut pour avoir ceci :
    "parameters": {
        "root"                           : "/Users/jojolapine/Development/Site1",
        "root.framework"                 : "/var/hoa",
        "root.data"                      : "(:%root:)/Data",
        "root.application"               : "(:%root:)/Application",

$ vi .Cache/HoaCore.php
// on fait ce qu'il faut pour avoir ceci :
  'parameters' => 
  array (
    'root' => '/Users/jojolapine/Development/Site1',
    'root.framework' => '/var/hoa',
    'root.data' => '(:%root:)/Data',
    'root.application' => '(:%root:)/Application',

$ cd ../../Bin/
$ vi Hoa.php
// on fait ce qu'il faut pour avoir ceci :
Hoa_Core::getInstance()->setParameters(array(
    'root'              => '/Users/jojolapine/Development/Site1',
    'root.framework'    => '/var/hoa',
    'root.data'         => '(:%root:)/Data',
    'root.application'  => '(:%root:)/Application',
    'protocol.Data/Bin' => '(:%protocol.Data:)' . 'Bin' . DS
));

Ok, alors testons !

C'est parti :

$ cd ~/Development/Site1 // pour dire qu'on est n'importe où
$ site1
// ça marche

$ site1 root
Framework's root: /var/hoa.

$ site1 root --data
Data's root: /Users/jojolapine/Development/Site1/Data.

$ site1 root --application
Application's root: /Users/jojolapine/Development/Site1/Application.

$ site1 configuration:view Hoa_Core
// on vérifie que les paramètres sont ceux qu'on voulait

On voit que tout fonctionne bien normalement smile.

Maintenant, on va créer notre application :

$ pwd
~/Development/Site1/
// on se met où on veut, ça ne change rien, site1 travaillera dans cet espace de travail
$ site1 application:start -b index
$ site1 tree Application
Application/
|-- Controller/
|-- Model/
|-- Public/
|   |-- index.php
|-- View/
|   |-- HendTheme/

On va éditer notre fichier d'amorçage :

$ vi Application/Public/index.php
i<?php

ini_set('include_path',  '/var/hoa/Core/' . PATH_SEPARATOR . get_include_path());
ini_set('date.timezone', 'Europe/Paris');

require_once 'Core.php';

import('Controller.Front');

Hoa_Core::getInstance()->setParameters(array(
    'root'              => '/Users/jojolapine/Development/Site1',
    'root.framework'    => '/var/hoa',
    'root.data'         => '(:%root:)/Data',
    'root.application'  => '(:%root:)/Application',
));

Hoa_Controller_Front::getInstance()->dispatch();<esc>:x

On continue en créant un contrôleur :

$ site1 controller:create index

et on va l'éditer de suite :

vi Application/Controller/Index.php
4Go<tab>public function IndexAction ( ) {

    echo 'zoupla';
}<esc>:x

Enfin, on va créer notre vue principale pour que Hoa ne lance pas d'exception :

$ touch Application/View/HendTheme/Front.phtml

Enfin, on va pouvoir tester notre site !

$ php Application/Public/index.php
zoupla

Elle est pas belle la vie smile ?

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : Configuration multi-sites en production

wink wink Thx pour les détails je rajoute ça dans hoa débutant

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

19

Re : Configuration multi-sites en production

Merci beaucoup!!!!!!! (vraiment!)
Je regarde ça ce soir si j'ai le temps sinon ce WE! Je vous tiens au jus!!!

20

Re : Configuration multi-sites en production

J'ai fait le tuto chez moi pour voir si tout fonctionne bien, normalement oui. Il faut vraiment prendre la version du tronc car j'avais oublié un petit truc dans le code tongue.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »