Icon

Partager Envoyer

(Document)

Configuration multisites

La gestion multisites de chora s'appuie sur celle du framework CodeIgniter et repose sur la constante ENVIRONMENT.
Cette constante est définie dans le fichier websites.php, lui-même chargé directement à partir du fichier principal du système index.php.

Dans le cas d'une installation devant permettre de servir de plusieurs sites avec la même application (installation multisites), la valeur de la constante ENVIRONMENT doit permettre d'identifier chaque site disposant de paramètres personnalisés à charger en fonction du domaine http demandé par les clients.
 

Ajout d'un domaine dans le fichier websites.php

La gestion de domaines multiples pour une même installation est effectuée dans le fichier websites.php, présent à la racine de votre installation. Les domaines pour lesquels l'application doit répondre sont nommés environnements.

Pour définir un environnement propre au domaine aurorae.local, il suffit par exemple d'ajouter les lignes :
               
           switch($domain) {
                case 'aurorae.local':
                        define('ENVIRONMENT', 'aurorae');
                        define('DEBUG_ENVIRONMENT', 'production'); //ou 'development'...
                        break;
                [...]
           }


Les lignes nécessaires à la gestion d'un nouveau domaine doivent être ajoutées avant le cas par défaut (default:) et à l'intérieur du contrôle portant sur le domaine : switch($domain) { [...] }.

Une fois la constante ENVIRONMENT définie pour un domaine particulier (vous ne devez utiliser ni accents, ni caractères spéciaux et ni espaces), l'application chargera après la configuration par défaut tout fichier de configuration placé dans le dossier de l'environnement. Pour le domaine configuré dans l'exemple ci-dessus, ce dossier sera /application/config/aurorae/.

Il vous faudra également définir la constante DEBUG_ENVIRONMENT (qui se substitue quant à elle à la constante ENVIRONMENT normale du cadriciel CodeIgniter) : elle sert pour la génération et l'affichage des messages d'erreur (sa valeur peut être définie comme development, testing ou production).
 

Préparation des fichiers de configuration d'un site

Comme expliqué précédemment, une fois l'environnement de votre nouveau site défini, il faut lui fournir ses propres fichiers de configuration. Ceux-ci doivent être placés dans config/<ENVIRONMENT>/

Commencez par créer le dossier correspondant à l'environnement de votre site dans config/.

Ensuite, il vous faut désactiver les fichiers site.php et additional_tables.php principaux (qui se trouvent dans config/) : renommez-les, par exemple, vers site.orig.php et additional_tables.orig.php pour éviter qu'il ne soient chargés : le but de cette opération est notamment d'empêcher les constantes d'être déjà définies lorsque la configuration propre à un site sera chargée (dans le cas d'une installation multisites), ce qui entraînerait une erreur. Notez que si vous possédiez déjà un site actif avec une installation monosite, il vous faudra donc le reconfigurer exactement de la même manière que n'importe quel autre site dans le cas d'une configuration multisites.

Puis, commentez les lignes qui chargent site.php et additional_tables.php dans le fichier config.php principal (dans config/) :
/*
|---------------------------------------------------------------------------
| Local config settings (site)
| IMPORTANT! This file should be included once at the very end of your main
|   config/config.php file *only* in case of a single site installation.
| In case of a multisites installation, it must be included once only at
|   the end of each config/<ENVIRONMENT>/config.php file.
|---------------------------------------------------------------------------
*/
//include_once 'site.php';
/*
|---------------------------------------------------------------------------
| Local additional tables to be joined to core (additional_tables)
| IMPORTANT! This file should be included once at the very end of your main
|   config/config.php file *only* in case of a single site installation.
| In case of a multisites installation, it must be included once only at
|   the end of each config/<ENVIRONMENT>/config.php file.
|---------------------------------------------------------------------------
*/
//include_once 'additional_tables.php';


Pour terminer, vous devrez créer (en copiant ceux qui se trouvent dans config/, puis en les modifiant) les fichiers de configuration propres au site ajouté. Pour cela, allez dans le dossier que vous avez créé pour votre site (config/<ENVIRONMENT>/).

En principe, vous devez a minima y placer une copie des cinq fichiers suivants :
 
  1. config/config.php : dans ce fichier, vous devrez modifier la variable site_url et les paramètres des cookies (sans oublier le domaine pour lequel ces derniers sont valides). Il vous faudra en outre décommenter les lignes suivantes à la fin du fichier copié (elles doivent toujours demeurer commentées dans le fichier principal config/config.php) :
/*
|---------------------------------------------------------------------------
| Local config settings (site)
| IMPORTANT! This file should be included once at the very end of your main
|   config/config.php file *only* in case of a single site installation.
| In case of a multisites installation, it must be included once only at
|   the end of each config/<ENVIRONMENT>/config.php file.
|---------------------------------------------------------------------------
*/
include_once 'site.php';
/*
|---------------------------------------------------------------------------
| Local additional tables to be joined to core (additional_tables)
| IMPORTANT! This file should be included once at the very end of your main
|   config/config.php file *only* in case of a single site installation.
| In case of a multisites installation, it must be included once only at
|   the end of each config/<ENVIRONMENT>/config.php file.
|---------------------------------------------------------------------------
*/
include_once 'additional_tables.php';

 
  1. config/database.php : dans lequel vous définirez les paramètres de la base de données à utiliser pour le site
  2. config/ckeditor.php : dans lequel vous définirez la constante ROOT_URL utilisée par l'éditeur de texte enrichi (elle doit avoir la même valeur que site_url pour ce site)
  3. config/site.php : dans lequel vous modifierez les paramètres propres au site, tels que ceux d'envoi d'emails
  4. config/additional_tables.php (ce fichier n'a pas à être modifié hormis dans le cas d'une application modifiée pour l'utiliser).

Optionnellement, d'autres fichiers de configuration peuvent être copiés dans le dossier d'un site particulier et modifiés selon vos besoins de personnalisation pour ce site.

IMPORTANT ! Veuillez noter qu'à l'heure actuelle la configuration multisites n'est pas supportée par l'installateur graphique.
 

Comment préciser le domaine en ligne de commandes

En ligne de commandes, il est normalement possible d'appeler une fonction d'un contrôleur de l'application : c'est normalement le cas pour automatiser l'envoi des messages qui se trouvent dans la file d'attente :

php c:wamp64wwwwebappindex.php EmailQueue/send_queue aurorae.local sur un serveur Microsoft Windows, ou :

php /usr/local/www/webapp/index.php EmailQueue/send_queue aurorae.local sur un serveur Un*x

Notez le second paramètre (en gras) : dans le cas d'une installation multisites, vous devrez transmettre ainsi le nom du domaine pour lequel il faut effectuer l'opération.

Il en sera de même, si vous utilisez les scripts fournis dans /application/ :

email_queue.bat aurorae.local

email_queue.sh aurorae.local


 


Ce document a été publié le 2019-01-03 11:15:58. (Dernière mise à jour : 2019-02-06 22:06:11.)




This website uses 'cookies' to enhance user experience and provide authentification. You may change which cookies are set at any time by clicking on more info. Accept
x