Théorie
Documentation
- une documentation : La mutualisation facile
- une autre documentation : Service d’hébergement mutualisé : scripts complémentaire du côté de l’hébergeur avec mise en place automatique des bases mysql, des droits et des accès FTP
- un bout de PHP pour faire tout le boulot :
svn://zone.spip.org/spip-zone/_plugins_/_test_/mutualisation/
Contraintes
- Le dossier plugins/ de SPIP est commun à tous les SPIP mutualisés (mais tous les plugins n’ont pas à être activés sur chacun des sites)
- Une mise à jour du code de SPIP implique de lancer la procédure de mise à jour des sites manuellement (si besoin) [1]
- tous les noms de domaine des site mutualisés devraient pointer vers le même chemin physique, seul un sous dossier serait propre à chaque site
Intérêt et avantages
- les accès aux fichiers du code source sont mutualisés
→ moins d’accès disque - eAccelerator [2] a beaucoup moins de fichiers à maintenir dans son cache
- les sauvegardes : il n’y a pas 20Mo par hébergé (hors plugins) à sauvegarder
- on peut même en sachant que l’hébergé a un SPIP mutualisé ne pas sauvegarder les dossiers local et tmp de son site
Inconvénient ?
- pas de maîtrise pour chacun des sites de sa version de SPIP
- pas de maîtrise des plugins pour chacun des sites (un hébergé qui voudrait tel plugin ne pourrait l’avoir)
→ il semblerait qu’une modification soir du bout de code php, soit de SPIP puisse permettre d’avoir 2 dossiers plugins/ : 1 mutualisé, et 1 par site hébergé - la sécurité inter-domaine doit être difficile à mettre en place
Mise en œuvre pratique
Pour permettre des mises à jour centralisées aisées, il est essentiel de disposer d’un client SVN sur le serveur afin de disposer de la commande : svn up
qui permet de mettre à jour le code source de SPIP et des plugins en les synchronisant avec le serveur de code source de SPIP.
SVN peut aussi être utilisé pour la récupération initiale du code source de SPIP et des plugins [3].
Installation automatisée de SPIP
Exemple de fichier d’installation de SPIP et de quelques plugins :
#Installation de SPIP
svn checkout svn://trac.rezo.net/spip/spip/ ./
#Installation de Gribouille, le wiki façon SPIP
svn checkout svn://zone.spip.org/spip-zone/_squelettes_/gribouille
#Installation du pseudo plugin de mutulaisation
svn chekout svn://zone.spip.org/spip-zone/_plugins_/_test_/mutualisation
#Installation des plugins
mkdir plugins
cd plugins
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/acces_restreint
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/acronymes
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_dev_/autorite
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/balise_session
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/barre_typo_generalisee
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/barre_typo_v2
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/boutonstexte
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_test_/cfg
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_dev_/compat193
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/couteau_suisse
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/forms/forms_et_tables_1_9_1
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/enluminures_typographiques_v2
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/recherche_etendue
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/sitemap
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_test_/sedna
svn checkout svn://zone.spip.org/spip-zone/_plugins_/_stable_/crayons
cd ..
#Creer le dossier squelettes au besoin
mkdir squelettes
#Creer le dossier de mutualisation
mkdir sites
#mettre les droits idoines pour les dossiers
chmod 770 config
chmod 770 IMG
chmod 770 local
chmod 770 tmp
chmod 770 sites
Une fois cela fait, il faut suivre les indication de la documentation pour mettre en place le mes_options.php qui va configurer la mutualisation et la mettre en œuvre.
Mise à jour
La mise à jour se fait par la commande svn up
.
Elle peut être automatisée à l’aide du script shell suivant :
echo "=============="
echo "<== SPIP"
svn up
cd mutualisation
svn up
cd ../gribouille
svn up
cd ..
echo "SPIP ==>"
cd plugins
for inode in $(ls)
do
if
[ -d $inode ]
then
echo $inode" ==>"
cd $inode
svn up
cd ..
fi
done
cd ..
chmod 770 . -R
chown www-data . -R
chgrp www-data . -R
Gestion
Une fois qu’un domaine est installé en mutualisé, on dispose d’un outil de consultation des autres sites mutualisés que l’on obtient en visitant la page ecrire/?exec=mutualisation