Carnet Mutualisation

La mutualisation facile : modifications manuelles

La mutualisation facile : modifications manuelles

Documentation provisoire du Plugin « mutualisation » décrit dans la Ferme à SPIP

La mutualisation qu’est ce que c’est ?

Supposons que vous avez plusieurs sites sous SPIP... Vous pouvez bien sûr installer les fichiers de SPIP en plusieurs exemplaires, mais vous perdez ainsi de la place et surtout de la facilité de maintenance.

Mutualiser des sites SPIP, c’est mettre en commun ce qui peut l’être (le moteur de squelette, l’interface privée etc), tout en proposant des données séparées.

Procédure d’installation

  1. Faire pointer les DNS de votre domaine vers l’IP de votre serveur. Tout l’intérêt de la mutualisation sera d’en faire pointer plusieurs en fait ;-)
  2. Sur votre serveur régler les VirtualHost des URLs à mutualiser vers ce répertoire (au moins une pour la procédure d’installation) Virtualhost pour la mutualisation
    • Pour une première installation de la mutualisation poursuivez ci-dessous
    • Pour l’installation d’un nouveau site sur le même serveur, allez tout de suite à l’étape « Relancer la procédure d’installation automatique »
  3. Installez les fichiers de SPIP :
      • pour la suite nous considèrerons que vous installez votre mutualisation Spip dans le répertoire typique /var/www/spip/
    • par svn : svn co svn://trac.rezo.net/spip/branches/spip-2.0 spip/
      • vérifier la destination de votre installation
      • sous windows vous pouvez utiliser un client graphique style tortoisesvn : une fois installé, celui-ci est intégré à l’explorateur de fichiers. Les commandes svn sont accessibles depuis le menu contextuel. Vous pouvez donc récupérer une copie de travail en effectuant depuis un répertoire quelconque une commande « checkout »
    • en déposant spip_loader.php dans le répertoire /var/www/spip/ en en l’appelant par un navigateur http://votresite1.tld/spip_loader.php
      • / ! \ ne faire que la première étape de l’installation, vérifier par ftp que les fichiers de spip ont bien été installés et installer le plugin « mutualisation » (avant de poursuivre.
  4. Installez le plugin de mutualisation
    • par svn : svn co svn://zone.spip.org/spip-zone/_plugins_/mutualisation/trunk spip/mutualisation/ (ou branches/... au lieu de trunk si vous etes en spip2)
    • par ftp en le prenant ici : http://files.spip.org/spip-zone/mut... et en l’installant à la racine du spip (ici donc dans un sous-dossier spip/mutualisation
  5. Créez un répertoire sites/ à l’intérieur du répertoire racine, dans lequel le serveur peut écrire.
  6. Créez le fichier /var/www/spip/config/mes_options.php en vous inspirant du contenu présent dans le fichier mutualisation/mes_options.php.txt
    • Vous n’aurez que les variables à modifier, c’est à dire les login/pass pour MySQL/PG..., et les drapeaux true/false.
    • Assurez-vous d’avoir un utilisateur MySQL (ou PostgreSQL) autorisé à créer des bases de données et utilisez son login et son mot de passe pour les variables correspondantes
  7. Relancer la procédure d’installation automatique
    • poursuivre maintenant cette procédure si vous aviez utilisé spip_loader.php plus haut
    • appeler http://votresite1.tld/ecrire avec un navigateur dans les autres cas.
    • saisir le code d’activation du site, celui que vous avez adapté dans le fichier mes_options.php
  8. Suivez le déroulement de l’installation en approuvant les boites de dialogue suivantes .. ;-)

Remarques complémentaires

Paramètres du fichier mes_options.php

Dans le fichier mes_options.php vous pouvez affiner les réglages selon vos besoins.

        // inscrire ici le nom du site d'administration du tableau de bord
        // de la mutualisation (ou plusieurs, separes par des virgules)
        // (dans cet exemple, 'scriibe.net' est le top level domain, TLD)
        // pour autoriser tous les sites, ne pas définir la constante ;
        // Si le site maitre n'est pas dans sites/ mais a la racine, mettre ''
        // et ajouter 'mutualisation' dans $dossier_squelettes
        define ('_SITES_ADMIN_MUTUALISATION', 'pc-33-g');

Avec ce plugin, il n’y a pas de notion de site maître. Comme précisé ici, dans certains cas il faut ajouter le chemin vers le dossier mutualisation, mais est ce vraiment utile ? De même pour le site d’administration de la mutualisation, ce ne devrait pas être nécessaire.

Puis la fonction demarrer_site est définie, j’en détaille ici les variables.

Vous pouvez activer maintenant le plugin et tester son fonctionnement (ou lire les cas particuliers avant ?)

Quelques cas particuliers

Votre site est déjà existant

Si vous avez déjà un site opérationnel (par exemple spip-contrib.net) et que vous voulez le mutualiser, il suffit de suivre toutes les étapes,

Ces répertoires peuvent être des liens symboliques vers les originaux du site à la racine, mais dans ce cas, le fichier mes_options.php devrait être déplacé dans /ecrire

Ainsi, dés l’activation du plugin, le site doit être opérationnel de manière transparente, vous ne devriez pas voir de différence.

personnalisation des squelettes pour chaque sites

Si plus tard vous voulez personnaliser les squelettes pour un site, il vous suffit de les placer dans le dossier

Connaître et visiter les sites mutualisés

ecrire/?exec=mutualisation permet si l’on est admin du site et que l’on a les droits suffisant (lire le code) d’afficher les sites mutualisés.

La liste ainsi produite est clicable et permet de visiter chacun des sites. Mais aussi, de procéder aux mises à jour de ces derniers.

A savoir

-  Cette page décrit une méthode s’appuyant sur le plugin « mutualisation » et SPIP-2. Depuis la version 1.x du plugin mutualisation, il est possible de faire une mutualisation de SPIP 3.0.
-  Historiquement la mutualisation a commencé à être possible dans les dernières versions de SPIP-1 moyennant des méthodes demandant de mettre plus « les mains dans le cambouis »
-  Il existe certainement d’autres moyens pour mutualiser un site SPIP, consulter pour cela les références ci dessous produites dans ces phases de développement de la mutualisation
-  un exemple, très parlant, d’une mise en œuvre est donné dans cet article : Ferme à SPIP expliquant le plugin Mutualisation (voir aussi http://spip2.ac-rouen.fr/?Mettre-en... et en particulier son PDF détaillé 37 pages !).
-  d’autres explications détaillées ont été produites pour la La mutualisation d’avant SPIP-2
-  une seconde démarche rajoute des tables de gestion pour un Plugin SiloSPIP (ou es), resté en développement en 2009
-  quelques références extérieures ( http://spipistrelle.clinamen.org/sp... ou http://www.pyrat.net/Mutualisation-...)
-  last (but not least) Maïeul nous fait partager son expérience http://geekographie.maieul.net/Gerer-un-SPIP-mutualise-avec-SSH et http://geekographie.maieul.net/Gerer-beaucoup-de-sites-SPIP-en
-  leaster(?) un pas-à-pas de Mike pour un multi-domaine chez OVH !
-  mutualisation sous windows en local http://www.blanche-de-peuterey.com/...
-  une bidouille pour gérer le dossier des plugins est donnée dans cet article : Gestion des dossiers /plugins (ou utiliser _DIR_PLUGINS_SUPPL)
-  de nouvelles précisions en développement dans Choisir un mode de mutualisation
-  En cas de difficultés, consultez les archives sur la liste spip-user, et, sinon, posez des questions claires, avec un sujet explicite.
toto