SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 169 visiteurs en ce moment

Accueil > Administration et BDD > Mutualisation > Plugin Mutualisation > Mutualisation SPIP sur Gandi Simple Hosting

Mutualisation SPIP sur Gandi Simple Hosting

22 décembre 2016 – par Sébastien – commentaires

14 votes

Ceci est une « contribution pédagogique », qui montre par l’exemple comment développer une nouvelle fonctionnalité pour SPIP.

La mutualisation du noyau de SPIP présente des avantages pour les opérations de maintenance (du noyau comme des plugins) ainsi que pour l’économie des ressources du serveur mais encore faut-il pouvoir l’installer ! On croit parfois que cette possibilité est réservée aux propriétaires d’un serveur dédié qui peuvent modifier la configuration de celui-ci. Les lignes qui suivent présentent la mise en place d’une mutualisation sur une plateforme grand public.

Avertissement

Ce tutoriel n’a pas vocation à inciter les utilisateurs de SPIP à migrer leurs sites vers Gandi Simple Hosting (il ne s’agit pas de publicité). Il présente simplement une méthode de mutualisation du noyau SPIP sur cette plateforme pour les personnes ayant ce besoin.
Ce tutoriel s’appuie principalement sur le plugin mutualisation et sa documentation provisoire.

Pré-requis et cahier des charges

On suppose que le lecteur de ces lignes dispose d’une instance de type « Gandi Simple Hosting ».
Pour information, l’instance qui a servi de modèle pour ce tutoriel est de taille L, basée à Paris avec PHP 5.6 et MySQL 5.6 (Percona).
Tous les sites considérés ci-après utilisent SPIP (version 3.1).

Afin qu’un maximum de personnes puissent tirer parti de ce tutoriel, on essaiera de détailler les procédures suivantes :

  1. Mise en place de la mutualisation. On explique comment préparer la mutualisation sur un site « maître ».
  2. Mutualisation d’un autre site situé sur la même instance. On présente les modifications nécessaires permettant d’ajouter (à la mutualisation) un site indépendant situé sur la même instance.
  3. Mutualisation d’un site développé en local. On propose une procédure pas à pas pour ajouter à la mutualisation un site développé en local.

Mise en place de la mutualisation

On dispose d’un site (à l’adresse www.domaine1.tld) hébergé sur une instance Simple Hosting et on souhaite qu’il soit utilisé pour stocker la mutualisation.
Cela signifie que ce site va héberger le moteur de la mutualisation ainsi que tous les fichiers de tous les sites mutualisés. On peut toutefois noter que cela ne sera pas visible par le visiteur et que ce site fonctionnera comme tous les autres sites mutualisés avec sa propre base de données, ses propres plugins et tous ses fichiers de personnalisation (répertoires « tmp », « IMG », « local », « config », « squelettes »).

Configuration du plugin Mutualisation

On télécharge le plugin « Mutualisation » compatible avec SPIP 3.1, on dézippe le répertoire puis on le renomme éventuellement « mutualisation » (au moment de l’écriture de cet article, le répertoire s’appelle « mutualisation_v1 », ce qui pose un problème lors de l’appel mutualisation/mutualiser.php du futur fichier « mes_options.php » livré avec le plugin).

Dans le répertoire « mutualisation », on trouve un fichier « mes_options.php.txt » qu’on copie en dehors du répertoire puis renomme « mes_options.php ».
On réalise alors les modifications suivantes :

    1. define ('_SITES_ADMIN_MUTUALISATION', 'domaine1.tld');
    1. /* placer dans ce tableau les sites ou l'on ne veut pas la redirection canonique */
    2. $www = array('domaine1.tld');

    Télécharger

  • Astuce de Matthieu Marcillaud permettant d’avoir le site www.domaine1.tld accessible : lien vers le forum. )
    En tête de fichier, juste après < ?php :
    1. $mutualisation = ($_SERVER['HTTP_HOST'] == 'domaine1.tld') ? false : true ;
    2. if ($mutualisation) {

    Télécharger

    Puis tout en fin de fichier, ou juste avant ?> si c’est présent :

    1. }

Préparation des répertoires sur le serveur

Attention : l’opération suivante va rendre l’adresse www.domaine1.tld temporairement inaccessible.

On se connecte maintenant à l’instance par SFTP et on ouvre le répertoire vhosts/www.domaine1.tld/htdocs.
On déplace les cinq répertoires « config », « tmp », « local », « IMG » et « squelettes » dans un répertoire temporaire (par exemple celui correspondant au vhost de test de forme c123456789.url-de-test.ws fourni avec l’instance) puis on recrée ces répertoires (vides) dans le répertoire htdocs. Ne pas oublier de modifier les droits de ces répertoires conformément aux directives de SPIP (chmod 777 pour « config », « tmp », « local » et « IMG »).

Transfert du plugin Mutualisation puis redémarrage de l’instance

On transfère :

  • le répertoire « mutualisation » dans le répertoire htdocs.
  • le fichier édité « mes_options.php » dans le répertoire « config » précédemment créé.

On crée ensuite le dossier « sites » dans le répertoire htdocs.
Enfin, on redémarre l’instance Simple Hosting (lien sur la page de l’instance) puis on se connecte à l’interface d’administration de l’instance et on vide le cache Varnish.

Redémarrer l’instance
Connection à l’interface d’administration
Nettoyage du cache Varnish

Ré-installation du site

On tape www.domaine1.tld dans le navigateur. Le formulaire d’activation de la mutualisation apparaît :

Installation du site

Le code d’activation demandé est ecureuil (modifiable dans le fichier « mes_options.php » ci-avant). On laisse le système créer les répertoires « config », « tmp », « local » et « IMG » dans vhosts/www.domaine1.tld/htdocs/sites/domaine1.tld/ mais on ne poursuit pas l’installation de SPIP (les fichiers de connexion existent déjà).

On déplace les contenus des répertoires « config », « tmp », « local », « IMG » et « squelettes » du répertoire de test vers les contenus des répertoires « config », « tmp », « local », « IMG » et « squelettes » (à créer à la main) du répertoire vhosts/www.domaine1.tld/htdocs/sites/domaine1.tld/.

On réactualise la page www.domaine1.tld dans son navigateur et on se connecte à l’espace privé. On vide le cache et on se rend sur la page d’administration des plugins (et on les réactive le cas échéant).

Le site est fonctionnel et la base de mutualisation est établie.

Mutualisation d’un autre site situé sur la même instance

On dispose d’un autre site (à l’adresse www.domaine2.tld) hébergé sur la même instance Simple Hosting et on souhaite lui faire bénéficier de la mutualisation.

Redirection vers le site de mutualisation

Attention : l’opération suivante va temporairement rendre l’adresse www.domaine2.tld inaccessible.

On se rend sur l’interface d’administration de son instance et on clique sur « multi-address management » puis on relie www.domaine2.tld à www.domaine1.tld.

Multi-adress management - figure 1
Multi-adress management - figure 2

Les fichiers et répertoires du site sont temporairement stockés dans le répertoire vhosts/www.domaine2.tld/htdocs_old. On en aura besoin plus tard.

Configuration de la mutualisation et installation du site

On récupère le fichier « mes_options.php » situé dans le répertoire vhosts/www.domaine1.tld/htdocs/config/ puis on effectue la modification suivante :

  1. /* placer dans ce tableau les sites ou l'on ne veut pas la redirection canonique */
  2. $www = array('domaine1.tld','domaine2.tld');

Télécharger

On transfère ensuite ce fichier modifié à son emplacement d’origine puis on tape www.domaine2.tld dans le navigateur.
Le formulaire d’activation de la mutualisation apparaît et on reprend la procédure de la partie précédente (Ré-installation du site) en déplaçant les contenus des répertoires « config », « tmp », « local », « IMG » et « squelettes » de vhosts/www.domaine2.tld/htdocs_old/ vers vhosts/www.domaine1.tld/htdocs/sites/domaine2.tld/. (On pensera également à déplacer les plugins vers vhosts/www.domaine1.tld/htdocs/plugins/).

On réactualise la page www.domaine2.tld dans le navigateur et on se connecte à l’espace privé. On vide le cache et on se rend sur la page d’administration des plugins (et on les réactive le cas échéant).

On efface enfin les fichiers restants contenus dans vhosts/www.domaine2.tld/htdocs_old afin d’économiser de l’espace disque.

Le deuxième site est mutualisé.

Mutualisation d’un site développé en local

On dispose d’un autre site développé en local qu’on souhaite lier à l’adresse domaine3.tld et joindre à la mutualisation.

Redirection permanente

Tout d’abord, on décide de faire pointer domaine3.tld vers www.domaine3.tld à l’aide d’une redirection permanente. Pour cela, on se rend sur la page de gestion de son nom de domaine et on crée la redirection.

Redirection web - figure 1
Redirection web - figure 2

Modification du fichier de zone

Toujours sur la page de gestion du nom de domaine, on change le fichier de zone pour que domaine3.tld pointe vers l’instance Simple Hosting.

Fichier de zone

Création du vhost

On ajoute alors le vhost www.domaine3.tld à l’instance Simple Hosting via la page de l’instance en décochant la modification automatique des DNS.

Nouvelle adresse

Redirection vers le site de mutualisation

On se rend sur l’interface d’administration de l’instance et via le « multi-address management », on relie www.domaine3.tld à www.domaine1.tld comme illustré précédemment (Redirection vers le site de mutualisation).

Base de donnée

On crée la base de données depuis l’interface d’administration de l’instance.

Accès à la base de données
Encodage de la base

On exporte ensuite la base de données locale puis on l’importe via PhpMyadmin depuis l’onglet SQL de sa base de données.

Configuration de la mutualisation et installation du site

On récupère le fichier « mes_options.php » situé dans le répertoire vhosts/www.domaine1.tld/htdocs/config/ puis on effectue la modification suivante :

  1. /* placer dans ce tableau les sites ou l'on ne veut pas la redirection canonique */
  2. $www = array('domaine1.tld','domaine2.tld','domaine3.tld');

Télécharger

En attendant la propagation DNS liée à la modification du fichier de zone, on transfère les plugins nécessaires vers www.domaine1.tld/htdocs/plugins/.
On transfère également les répertoires « config », « tmp », « local », « IMG » et « squelettes » vers le vhost de test (Préparation des répertoires sur le serveur). Attention à modifier préalablement le fichier « connect.php » du répertoire « config » afin que la connexion à la base de données puisse se faire convenablement.

Au bout d’un certain temps (entre quelques minutes et quelques heures), la propagation DNS est terminée et l’adresse www.domaine3.tld tapée dans le navigateur renvoie bien le formulaire d’activation de la mutualisation. On reprend la procédure indiquée Ré-installation du site (sans oublier de déplacer les plugins vers vhosts/www.domaine1.tld/htdocs/plugins/).

Une fois connecté à l’espace privé, on n’oublie pas de :

  • changer l’URL du site public (dans l’onglet « configuration » puis « identité du site ») qui est certainement une URL liée à l’installation locale.
  • vider le cache.
  • se rendre sur la page de gestion des plugins pour les activer (éventuellement) et recréer le cache des pipelines.

Le troisième site est mutualisé.

Dernière modification de cette page le 11 janvier 2017

Retour en haut de la page

Vos commentaires

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Mise à jour automatique des plugins

    5 octobre 2009 – 156 commentaires

    Une nouvelle lame du Couteau Suisse permet de visualiser les plugins nécessitant une mise à jour, tout comme SPIP lui-même ! Présentation Rendons à César ce qui est à César, voici un extrait de la présentation du Couteau Suisse pour sa lame « Mise (...)

  • Plugin Modèles media

    25 avril 2011 – 170 commentaires

    Les modèles , et produisent chacun un résultat différent et ce résultat, pour les images, dépend du fait qu’elle soit dans le portfolio ou non. Ce plugin propose une nouvelle série de modèles ayant un comportement unifié et indépendant du mode des (...)

  • Refonte de l’identité graphique

    10 juillet – 68 commentaires

    Lors de la SPIP Party 2017 à Toulouse, un nouveau contributeur est venu nous présenter son travail sur une refonte du logo. Au delà de la refonte du logo, c’est une toute nouvelle identité graphique pour SPIP que Jordan nous propose. Voici une (...)

  • Mailsubscribers

    16 janvier 2013 – 306 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • Saisies

    27 mars 2010 – 490 commentaires

    Introduction Créer un formulaire est une tâche toujours un peu répétitive : les champs ont souvent les mêmes propriétés, le même accompagnement (message d’erreur, explication, ...) et la même structure HTML. Ce plugin est un outil pour les développeurs (...)

Ça spipe par là