Version 4 — Mai 2009 — dani
Plugin en développement, pas encore opérationnel : http://zone.spip.org/trac/spip-zone...
Des sites SPIP en libre-service, aussi facile qu’un blog-bigbrother.com, mais qui ne séquestrent ni le contenu du site, ni l’accès à la techno qu’il y a en dessous.
Lors de la SPIP design party à Nantes en 2007, Tétue illustrait la situation de SPIP comme une échelle qui va très très haut, mais à laquelle il manque les premiers barreaux. Pour ceux qui peuvent arriver par d’autres moyens jusqu’à l’echelle c’est super, mais pas tout le monde peut y arriver.
Du coup, plein de gens — y compris beaucoup qui pourraient tenir aux principe du manifeste du web indépendant — vont vers des services commerciaux (ou publi-gratuits) de réalisation de blogs ou de sites, plutôt que de choisir une solution et une infrastructure qui leur permettrait de préserver leur liberté.
Dans l’esprit des solutions de mutualisation de SPIP, ce plugin SiloSPIP (pas de spéciale préférence pour ce nom), tente les idées ci-dessus, en particulier celle d’ouvrir l’accès aux technos en dessous : on peut créer un site SPIP « en libre service web », choisir des squelettes, activer ou non des plugin, etc. mais par la suite, si on veut, on peut avoir accès, « en dessous », aux squelettes SPIP, au PHP MySQL, etc.
L’install et les dépendances
Est ajoutée une table spip_silosites et sa boucle
Le plugin comprend un panneau de config CFG, dans lequel on donne l’adresse du panel AlternC auquel le service est couplé, avec un nom d’administrateur AlternC et son mot de passe. On y définit aussi le domaine, ou la liste de domaines en sous-domaine desquels on peut créer des sites du silo.
les balises et boucles
Une balise #FORMULAIRE_SILO_CREER_SITE qui permet à un utilisateur authentifié authentifier de créer un site dans le silo. , à appeler ainsi :
< code >
<div class=« ajax »>
#FORMULAIRE_SILO_CREER_SITE#SESSIONid_auteur
</ div >
</code > On l’appelle appeler ainsi :
<div class="ajax">
#FORMULAIRE_SILO_CREER_SITE{#SESSION{id_auteur}}
</div>
Une balise #FORMULAIRE_SILO_SITES, à appeler de même, qui permet de lister les sites créés.
Aucune fonctionnalités n’est encore finie. La création d’un site l’inscrit dans la base, et tente quelques appels à l’interface du panneau AlternC pour la créer l’utilisateur AlternC, la base MySQL pour le site, le user mysql et ses droits.
Le mode d’organisation de la mutualisation de sites
On installe un AlternC.
Dans un répertoire, a priori hors d’un compte AlternC, on installe un code SPIP avec le plugin de mutualisation. Par exemple dans /usr/share/spip/
On crée un alias Apache de ce répertoire valable dans tout VirtualHost. Par exemple, on crée un fichier /etc/apache2/conf.d/spip.conf avec le contenu suivant :
Alias /spip_mut /usr/share/spip
<Directory /usr/share/php/spip>
Options Indexes FollowSymLinks
DirectoryIndex index.php
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
</IfModule>
</Directory>
La mutualisation pourra être faite de la manière suivante :
- la création de la base de données dans le user AlternC correspondant
- la déclaration du sous domaine comme « domaine par défaut » login.domaine_mutu.org, proposé par AlternC lors de la création d’un utilisateur,
- la configuration de ce domaine vers un répertoire de l’utilisateur, où une règle de réécriture (RewriteRule Apache dans le fichier .htaccess) le renvoie vers l’alias du SPIP mutualisé : http//login.domaine_mutu.org/spip_mut/
- dans le dossier ’sites’ du SPIP mutualisé, au lieu d’un dossier par site, on trouver un lien symbolique vers le un dossier dans le compte AlternC de l’utilisateur : /usr/share/spip/sites/login.domaine_mutu.org -> /var/alternc/html/l/login/login.domaine_mutu.org
qui, comme pour le plugin mutualisation, contient les dossiers de contenus : /tmp/, /IMG/, etc.