Mutualiser le core de #SPIP

Langage et développement
PHP
Frameworks
Industrialisation
SVN

| par Teddy Payet

Je réalise des sites internet sous SPIP depuis quelques années maintenant. Et pour cela, à chaque nouveau site, j’installais à chaque fois les fichiers de SPIP sur mon espace d’hébergement, un sous-domaine par site… Fonctionnement classique.
Mais voilà, ce n’est pas pratique pour une mise à jour de Spip, des plugins…
Je me suis lancé à réaliser la mutualisation de SPIP et des plugins.

Préambule

Par éthique et politesse, j’ai demandé à mon hébergeur si cela posait problème car je suis sur un espace mutualisé. Ne comptant pas faire une usine à gaz, il a gentiment accepté.
Donc, un conseil, avant de vous lancer dans la mutualisation du core, demandez à votre hébergeur l’autorisation.

Introduction

Pour réaliser la mise en place, j’ai suivi l’article sur le carnet de SPIP-Contrib.
Je vais vous décrire la démarche que j’ai adopté par rapport à ma configuration d’hébergement. Je ne peux pas faire de commande svn sur mon serveur mutualisé.

Procédure d’installation

  1. Se connecter à son espace de gestion d’hébergement (cPanel dans mon cas).
  2. Créer un nouveau sous-domaine spip3.example.com vers le répertoire "public_html/spip3/".
  3. Téléchargement de spip_loader.php. Transfert de ce fichier dans le répertoire public_html/spip3/.
  4. Aller à l’url du sous-domaine http://spip3.exemple.com/spip_loader.php.
    • Lancer uniquement la première étape de spip_loader.php. Ce qui aura pour effet de télécharger sur le serveur les fichiers de SPIP.
  5. Télécharger le plugin Mutualisation à l’adresse suivante : http://files.spip.org/spip-zone/mut...
  6. Transfert du répertoire décompressé "mutualisation" à la racine de mon répertoire public_html/spip3/ par ftp. Ce qui donnera public_html/spip3/mutualisation.
  7. Création des répertoires :
    • toujours par ftp, créer un répertoire sites, soit après création, on aura public_html/spip3/sites.
    • Créer aussi plugins/auto => public_html/spip3/plugins/auto.
  8. Création du fichier mes_options.php
    • Dans public_html/spip3/config, on crée ledit fichier.
    • On copie dans ce fichier, le contenu de public_html/spip3/mutualisation/mes_options.php.txt.
    • Dans public_html/spip3/config/mes_options.php, on y modifie les variables nécessaires :
      • define ('_SITES_ADMIN_MUTUALISATION', 'spip3.example.org'); // Ligne 11
      • define ('_INSTALL_NAME_DB', 'example_'. _INSTALL_SITE_PREF); // Ligne 47
      • define ('_INSTALL_SERVER_DB', 'mysql'); // Ligne 49
      • define ('_INSTALL_USER_DB', 'loginsql');  // Ligne 51
      • define ('_INSTALL_PASS_DB', '123456HDJ'); // Ligne 52
      • 'mail' => '', // Ligne 123
      • 'code' => 'ecureuil', // Ligne 124
  9. Aller à l’url du sous-domaine http://spip3.exemple.com/spip_loader.php pour terminer la procédure d’installation.
    Si vous avez l’habitude de spip_loader.php, vous verrez que les étapes ne sont pas identiques.

Pour ma part, mon espace d’hébergement ne me permet pas de créer par ce biais de bases de données. Alors, je prends en note le nom de la base de donnée que spip_loader m’a donné et la crée depuis mon cPanel. Exemple : example_spip3ted23jk, je crée la BDD "spip3ted23jk" car cPanel ajoute tout seul example_.
A l’étape, "voulez-vous créer cette base de données", je clique oui… Mais j’ai une erreur. Dans l’url, je change le paramètre creerbase=oui par creerbase=non. Et là, on passe l’étape sans embuche.

Voilà maintenant vous pouvez accéder à votre site mutualisé SPIP à l’adresse http://spip3.exemple.org.
Si vous voulez voir tous les sites mutualisés, vous pouvez aller à l’adresse URL http://spip3.example.com/ecrire/?exec=mutualisation.
Bien entendu, vous ne verrez actuellement qu’un seul site.

Ajouter un nouveau sous-domaine à ma mutualisation

Notre plateforme est mise en place et fonctionnel, nous pouvons rajouter de nouveaux sites.
Pour cela, créer un nouveau sous-domaine depuis cPanel toto.example.com vers le répertoire "public_html/spip3/".
Aller à l’url du sous-domaine http://toto.exemple.com/.
Renseigner le code d’activation que j’avais personnalisé à l’étape 8 (ligne 124 de mes_options.php).
Créer manuellement la base de données si SPIP ne peut le faire seul
Là encore, à l’étape, "voulez-vous créer cette base de données", je clique oui… Mais j’ai une erreur. Dans l’url, je change le paramètre creerbase=oui par creerbase=non.
Continuer la fin de la procédure…

Et voilà, le site est mis en place.
Vous pouvez aller par ftp vérifier dans public_html/spip3/sites/ l’existence d’un nouveau répertoire portant le doux nom de votre sous-domaine.

Répéter autant de fois que nécessaire la procédure pour vos nouveaux sous-domaines.

Aller plus loin

Sur cet article, je ne vous parle que la mise en place de nouveaux sous-domaines. On peut aussi brancher un site existant dans cette mutualisation. Sur la page "La mutualisation facile : modifications manuelles", paragraphe "Quelques cas particuliers", vous avez la procédure à suivre.

Conclusion

Sincèrement, il ne faut pas avoir peur de se lancer dans la mutualisation de SPIP. C’est simple à mettre en place quand on a compris la mécanique. Et cela facilite la vie par la suite ! Croyez-moi.
Alors, je vous dis, bonne mutualisation !