Chez Nursit nous hébergeons plein de sites SPIP. Et parfois nous avons besoin de modifier la configuration d’un site en activant ou désactivant un plugin sans avoir d’accès au back-office. Nous avons mis au point pour cela deux petits scripts bash qui permettent de faire cela avec un œuf de pâques bien sympathique pour migrer un site d’un serveur à un autre !

Désactiver les plugins

Commençons par le plus simple. Le script site-desactive-plugin.php peut-être lancé depuis la racine du site SPIP, ou éventuellement depuis ecrire/ ou le dossier plugins/ (mais pas dans un sous-répertoire).

Lister les plugins

Lancé sans argument, le script liste les plugins actifs du site, et une aide qui rappelle sa syntaxe d’appel.

Désactiver un ou des plugins précis

Pour désactiver un ou plusieurs plugins précis, il suffit de lister leurs préfixes en argument du script :

Desactiver tous les plugins

L’argument --all permet de désactiver tous les plugins du site. Evidemment, les plugins qui ne sont pas désactivables resteront actifs au final.

Activer les plugins

Le script site-active-plugin.php peut-être lancé depuis la racine du site SPIP, ou éventuellement depuis ecrire/ ou le dossier plugins/ (mais pas dans un sous-répertoire).

Lister les plugins

Lancé sans argument, il liste simplement les plugins actifs et rappelle la syntaxe d’appel :

Activer des plugins d’après leur préfixe

Si l’on indique en argument le préfixe des plugins qu’on veut activer, le script les active simplement :

Si les plugins sont déjà actifs, le script ne fait rien. On peut le vérifier :

Si le plugin demandé n’est pas disponible dans le dossier des plugins, le script ne fait rien :

Activer les plugins utilisés par un autre site

La petite fonctionnalité supplémentaire bien sympathique du script est qu’il peut prendre en charge une URL en argument au lieu du préfixe d’un plugin. Dans ce cas, le script va aller récupérer les en-têtes du site indiqué en URL pour retrouver la liste des plugins qu’il utilise, et activer tous ceux qui ne sont pas déjà actif.

A noter que le script ne désactive pas les plugins du site courant qui sont en trop. Pour avoir la même liste de plugins que sur le site distant, il faut commencer par désactiver tous les plugins du site local au moyen de la commande site-desactive-plugin.php --all.

Le script se contente d’activer les plugins d’après leur préfixe. Il ne prend pas en compte les éventuelles différences de version, et si plusieurs versions compatibles du même plugin sont présentes dans le dossier plugins/, il ne permet pas de choisir laquelle sera activée.

En complément, vous pouvez voir l’astuce proposée par Bruno pour Migrer facilement ses plugins d’un SPIP à un autre si elle vous convient mieux pour votre besoin.


Crédit photo : michelvanbalen

Vos commentaires

  • Le 9 septembre 2013 à 17:01, par RastaPopoulos En réponse à : Administrer les plugins d’un site en ligne de commande

    Mmmh je ne comprends pas, tout comme pour le script « desactive », celui pour « active » commence par lister les « Plugins actifs » et non pas les plugins disponibles. Ceux déjà actifs ne nous aident pas à savoir quoi mettre comme préfixe en argument de l’activation, non ?

    ’Fin jveux juste dire qu’il y a une différence d’utilité entre les deux listes quoi : dans le « desactive » la liste aide à savoir quoi taper en argument, alors que pas dans l’autre.

    Ou bien j’ai pas compris quelque chose. :)

  • Le 9 septembre 2013 à 17:07, par Cédric Morin En réponse à : Administrer les plugins d’un site en ligne de commande

    Disons que nous n’avons pas eu le besoin de lister les plugins disponibles dans notre cas (parce que c’est une liste fixe connue), alors qu’on a plus besoin de connaître les plugins déjà actifs (parce que ça change d’un site à l’autre).

    Mais tu as raison, c’est une bonne suggestion d’amélioration. Ne te prive pas, c’est de la licence libre !

  • Le 10 septembre 2013 à 17:51, par Olivier Tétard En réponse à : Administrer les plugins d’un site en ligne de commande

    Merci pour ces scripts !

    En voyant ça, je me dis que ça pourrait être pas mal d’étendre ces scripts et d’en faire un véritable outil de gestion des sites SPIP en ligne de commande, un peu à la manière de ce que fait Drush pour Drupal.

    Dès que je trouve un peu de temps, je veux bien donner un coup de main là dessus.

    Olivier ;

  • Le 9 octobre 2013 à 18:12, par Mél Izard En réponse à : Administrer les plugins d’un site en ligne de commande

    un tableau de bord de suivi et de contrôle général des paramètres et plugins des sites spip mutualisés serait bien utile en effet.

  • Le 21 mars 2016 à 17:36, par RealET En réponse à : Administrer les plugins d’un site en ligne de commande

    Bonjour,

    À la lecture du code source, c’est l’entête HTTP qui est utilisé pour récupérer la liste des plugins du site distant. S’il y a beaucoup de plugins, ça va tomber sur ce bug : https://core.spip.net/issues/3557

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

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.

Suivre les commentaires : RSS 2.0 | Atom

Voir aussi...

L’inscription sur Nursit

Présentation de Nursit

Lire la suite
Il n’y a pas que les réseaux sociaux dans la vie !

Twitter, Facebook , le blog. Oui certes, mais il manquait une chose élémentaire : l’inscription à une liste de diffusion. Je me pose la question que beaucoup doivent se poser sur SPIP : quel (...)

Lire la suite
Secret or not Secret ?

Julien a dit hier sur twitter Je me dis qu’on a tort de garder ce qu’on fait « secret » et de le sortir quand c’est prêt. On devrait au contraire en parler, communiquer... Cédric et moi (...)

Lire la suite