Spip-Cli en Mutualisation

Spip-Cli dispose d’un exécutable spipmu qui permet d’exécuter une même commande sur un ensemble de sites SPIP mutualisés.

Préambule

Cet outil s’utilise actuellement dans le cadre d’une mutualisation habituelle de SPIP (par exemple avec le plugin Mutualisation) qui s’appuie sur la variable d’environnement HTTP_HOST pour déterminer le site à démarrer. La constante _DIR_SITE doit être définie sur le chemin du site démarré ainsi.

Le répertoire qui héberge les sites doit se nommer sites et se situer à la racine du SPIP (à côté donc des répertoires ecrire/ ou plugins-dist/). Cependant, ce peut être un lien symbolique vers un autre dossier en dehors de SPIP.

Installation

Si ce n’est pas fait, lier le binaire pour accéder directement à la commande spipmu :

cd /opt/spip-cli/bin
ln -s $(pwd)/spipmu /usr/local/bin/

Usage

L’usage est simple avec 2 paramètres :
-  [glob] : tel que "*" ou "*.domaine.tld" indique sur quels sites appliquer la commande, à partir du nom de leur répertoire. Notons que cet argument doit être la plupart du temps entouré de guillemets, car l’étoile est remplacée en terminal par la liste des fichiers du répertoire en cours, ce qui provoquerait une erreur de commande.
-  [commande] : indique la commande à exécuter. Entourez de guillemets aussi s’il y a des options ou des arguments.

spipmu [glob] [commande]
spipmu "*" test:spip
spipmu "*.domaine.tld" "plugins:lister --export"
spipmu demo.domaine.tld "plugins:activer saisies yaml z-core"

Fonctionnement

Pour chaque répertoire validant la recherche glob, le script tente de se connecter à la base de données du site pour récupérer son URL (le champ adresse_site dans la table spip_meta).
Une valeur de host est calculée à partir de cette URL, si on arrive à l’obtenir.

Pour chaque site valide, on exécute la commande SPIP-Cli demandée en sous-tâche, en transmettant la variable d’environnement HTTP_HOST que l’on avait calculé. Ainsi le SPIP démarre sur le site adéquat.

Si la commande lancée nécessite des interactions en console (par exemple pour valider une action), il faudra valider l’action pour chaque site.

L’ensemble des commandes Spip-Cli sont donc accessibles, mais il convient de préciser que certaines ne fonctionneront pas forcément dans le cadre d’une mutualisation.

Facilités avec la commande spip

Utiliser directement la commande spip

Vous pouvez aussi utiliser sur un site précis directement la commande spip, soit en connaissant le host et en le transmettant en variable d’environnement, soit en exécutant la commande depuis le répertoire du site :

cd /var/www/spip_mutualise
# host transmis, la mutualisation démarrera dessus
HTTP_HOST="sous.domaine.tld" spip test:spip
# sinon aller dans le répertoire
cd sites/sous.domaine.tld
spip test:spip

Lorsque la commande spip est exécutée depuis un répertoire d’un Spip mutualisé, la variable d’environnement HTTP_HOST sera calculée (à partir de l’URL du site en base de données) avant de démarrer SPIP.

Exemple de sortie

spipmu "cite*" test:spip

Note : les données sont remplacées par des petits xxx ici.

spipmu *cite* test:spip

Spip Cli Mutualisation
======================

  ✔ SPIP trouvé.
  ✔ Répertoire sites trouvé.
  ✔ 2 sites correspondent au critère *cite*
  ✔ 2 sites valides

 * www.cite-a-xxxxxx.fr
 * www.cite-b-xxxxxx.fr

www.cite-a-xxxxxx.fr
----------------------------------------------------


Vérifier notre accès à SPIP
===========================

  ✔ SPIP est trouvé
  ✔ SPIP est démarré
  ✔ PDO Accessible

 Nom du site : XXX
 Adresse du site : http://www.cite-a-xxxxxx.fr

  ✔ 2 webmestre·s sur ce site (via PDO)
  ✔ 2 webmestre·s sur ce site (via SPIP)
 ------ ---------------- ----------------------------------
  id     nom              email
 ------ ---------------- ----------------------------------
  1      Administrateur   xxx@xxxx
  1234   XXXXX            xxx@xxxx
 ------ ---------------- ----------------------------------




www.cite-b-xxxxxx.fr
--------------------------------------------------------


Vérifier notre accès à SPIP
===========================

  ✔ SPIP est trouvé
  ✔ SPIP est démarré
  ✔ PDO Accessible

 Nom du site : XXXXXXXX
 Adresse du site : http://www.cite-b-xxxxxx.fr

  ✔ 1 webmestre·s sur ce site (via PDO)
  ✔ 1 webmestre·s sur ce site (via SPIP)
 ---- ----------- ----------------------------------
  id   nom         email
 ---- ----------- ----------------------------------
  1    AdminSpip   xxx@xxxx
 ---- ----------- ----------------------------------

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom