Bonjour,
Après tous mes déboires avec l’installation de sites spips mutualisés, j’ai enfin une config qui fonctionne. Merci Committo Ergo Sum de ton aide en la matière.
Je vais essayer de la décrire, ainsi que les étapes de mise en place. Ca sera sans doute redondant avec la doc et le spip-contrib sur le sujet, mais parfois on y arrive mieux en lisant la même chose sous plusieurs formes. La configuration que je vais décrire est celle-ci :
J’ai un site "racine" (root), et des "sous-sites" (gag, houpic, calvi et arc) qui ont chacun sa base de données, où les tables sont préfixées par spip_
Je précise que je travaille sur mon propre serveur et que j’ai donc accès à tout ce que je veux (ce qui est parfois très dangereux...).
Comment je m’y suis prise :
1 - sous phpMyAdmin, je crée autant de BDD que nécessaire (5 en ce qui me concerne : root, gag, houpic, calvi et arc) et je donne mes privilèges d’accès à au moins un utilisateur. Les BDD sont vides pour le moment.
2 - je modifie la config d’apache (httpd-conf) pour créer un serveur virtuel qui est l’adresse http de la racine (root). On va l’appeler ici www-root
3 - je crée un répertoire "sites" situé à la racine de spip, au même niveau que "ecrire" et dedans, je crée autant de répertoires que de sites (gag, houpic, calvi et arc). Dans chacun d’eux, je crée les quatre répertoires dont parle la doc : IMG, local, tmp et config, accessibles en écriture.
4 - Je recopie le htaccess.txt de la racine dans .htaccess et je copie dans ce nouveau fichier ce qui est indiqué dans la doc, en l’adaptant à mon cas (je ne mets ici que le début du fichier, en abrégeant les lignes commentées) :
####blablabla######
RewriteEngine On
################ CONFIGURATION #####################
### Configuration sous-repertoire
RewriteBase /
# blablabla###
### REGLAGES PERSONNALISES
#Mutualisation
RewriteRule ^(gag|houpic|calvi|arc)$ /$1/ [R,L]
RewriteRule ^(gag|houpic|calvi|arc)/(.*) /$2 [QSA,L]
RewriteCond %REQUEST_URI !^/(config|dist|ecrire|IMG|oo|plugins|sites|squelettes|tmp|local)/(.*)
RewriteRule ^[^/]+/(.*) /$1 [QSA,L]
5 - Je crée un fichier "mes_options.php" dans le répertoire "config" de la racine et j’y copie, en l’adaptant, ce que j’ai trouvé dans la doc. Attention ! ne faites pas comme moi au début : n’oubliez pas les balises de début et fin de php du fichier (elle n’apparaissent pas dans la doc) :
<?php
if ( preg_match(',/([a-zA-Z0-9_-]+)/?,',$_SERVER['REQUEST_URI'],$r)) {
if (is_dir($e = _DIR_RACINE . 'sites/'.$r[1]. '/')) {
$cookie_prefix = $r[1];
$table_prefix = 'spip';
define('_SPIP_PATH',
$e . ':' .
_DIR_RACINE .':' .
_DIR_RACINE .'dist/:' .
_DIR_RESTREINT);
spip_initialisation(
($e . _NOM_PERMANENTS_INACCESSIBLES),
($e . _NOM_PERMANENTS_ACCESSIBLES),
($e . _NOM_TEMPORAIRES_INACCESSIBLES),
($e . _NOM_TEMPORAIRES_ACCESSIBLES)
);
$GLOBALS['dossier_squelettes'] = $e.'squelettes';
if (is_readable($f = $e._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php')) include($f);
}
}
?>
6 - Via mon navigateur, j’appelle respectivement chaque site pour installer les tables dans les cinq bases de données que j’ai préalablement créées :
http://www-root/ecrire, http://www-root/gag/ecrire, http://www-root/houpic/ecrire...
A chaque fois, spip lance une procédure d’installation et crée les tables correspondantes dans la base de données dont je lui indique le nom.
7 - je configure individuellement chaque site dans spip, et je crée les squelettes spécifiques nécessaires, que je place dans un répertoire "squelettes" de chaque répertoire des sous-sites (au même niveau que les local, tmp, IMG et config) initiaux.
Et maintenant, je vais les écrire, ces squelettes, parce que j’ai déjà perdu plus de trois jours avec ce qui précède. C’est quand même hyper chronophage spip quand on n’est pas un pro !
Bonne chance aux amateurs de spip mutualisé.
Véronique