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
---- ----------- ----------------------------------
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |