Comment avoir plusieurs SPIP sur une base ?

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Si vous voulez mettre en place deux sites web (l’un sur les chiens [1] et l’autre sur la plongée [2] par exemple) mais que vous ne possédez qu’un espace d’hébergement, c’est possible.

-  Téléchargez la distribution de SPIP ;
-  Dézippez-la dans un répertoire que vous avez choisi ;
-  Renomez le répertoire spip en paf ;
-  Copiez ce répertoire paf en plouf ;
-  Créez le fichier paf/ecrire/mes_options.php3 avec ces 4 lignes [3] :

<?php
$table_prefix = "paf";
$cookie_prefix = "paf";
?>


-  Créer le fichier plouf/ecrire/mes_options.php3 avec ces 4 lignes [4] :

<?php
$table_prefix = "plouf";
$cookie_prefix = "plouf";
?>


-  Transférez les répertoires paf et plouf chez votre hébergeur [5] ;
-  Connectez-vous sur www.monsite.com/paf/ecrire pour configurer votre site ;
-  Connectez-vous sur www.monsite.com/plouf/ecrire pour configurer votre site.

Précisions :
-  Le préfixe ne doit pas commencer par spip ;
-  La version de Spip minimum (pour utiliser mes_options.php3 [6] est la 1.5.2 ;
-  Dans votre unique base vous aurez deux jeux de tables spip : paf_auteur et plouf_auteur par exemple.

Notes

[1Et paf le chien.

[2Et plouf le poisson.

[3Attention le prefixe NE PEUT PAS COMMENCER PAR SPIP.

[4Attention le prefixe NE PEUT PAS COMMENCER PAR SPIP. A l’instar de mes_fonctions.php3, mes_options.php3 n’est pas écrasé lors de l’installation d’une nouvelle version de SPIP

[5Ce n’est pas parce que vos sous-dossiers se nomme « paf » ou « plouf » qu’il faut impérativement que « $table_prefix » et « $cookie_prefix » aient le même nom, ça n’a en fait peut d’importance, du moment qu’ils ne commencent pas par « spip ».

[6Sinon il faut le faire dans inc_version.php3, mais à chaque mise à jour de Spip, ce fichier est ecrasé, ce qui n’est pas le cas pour mes_options.php3.

Le même principe est bien sûr toujours valide avec SPIP 2 et SPIP 3 (vous utiliserez des fichiers mes_options.php pour enregistrer la définition de vos préfixes différents pour des jeux de tables SPIP différents [1].

Noter que la restriction indiquée sur le préfixe (ne commençant pas par spip) semble plus d’importance ; toutefois, certaines premières versions de sauvegardes SQLite de SPIP 3 pouvaient s’avérer incomplètes dans certains cas..

Discussion

27 discussions

  • 1

    Avec spip 2.0.10, le spip_loader lors de l’install permet de choisir un prefix : encore plus simple pour installer plusieurs sites spip sur une seule base !

    • Et si je veux le fair depuis une installation ? J’ai deja beaucaup d’articles dans ma base et je vais maintenant avoir deus sites sans partager le noyeau SPIP... Quelq’un peut m’aider, svp ?

      (excusez, mon mauvais français)

    Répondre à ce message

  • Après quelques recherches une solution avec le spip_loader :

    http://www.falconnet.fr/Prefixer-les-tables-spip-avec-le.html

    (le site est pas très beau, mais la manip fonctionne... en tous cas avec la version 1.9.2)

    Répondre à ce message

  • Et avec la version 1.9 de SPIP ? Plusieurs SPIP 1.9 sur une même base avec des noms de table différents ?
    Merci
    Pierre

    Répondre à ce message

  • Starcrouz

    Attention, ne pas choisir de préfixe de base de données contenant le caractère « - » : par exemple $table_prefix = « lapin-malin » ;. Bizarement, cela ne produit aucune erreur, ni dans phpmyadmin ni via spip, mais la partie privée du site devient tout simplement inaccessible, quant au site lui même, aucune boucle ne renvoit quoi que ce soit. A éviter donc ! (spip 1.8.2d)

    Répondre à ce message

  • 1

    pour compléter cet article je rappelle que depuis la version 1.6 de Spip le fichiers « ecrire/mes_options.php3 » peut être utilisé pour bien plus de réglages, le multibase, mais aussi la définition d’un dossier squelettes par exemple.

    La procédure à suivre est détailée lignes 80 à 125 du fichier « ecrire/inc_version.php3 » de la distribution officielle de la V 1.6

    extrait :

    //
    //     *** Parametrage par defaut de SPIP ***
    //
    // Ces parametres d'ordre technique peuvent etre modifies
    // dans ecrire/mes_options.php3. Les valeurs specifiees
    // dans ce dernier fichier remplaceront automatiquement
    // les valeurs ci-dessous.
    //
    // Pour creer ecrire/mes_options.php3 : recopier simplement
    // les lignes ci-dessous, et ajouter le marquage de debut et
    // de fin de fichier PHP ("< ?php" et "? >", sans les espaces)
    //

    fin extrait

    • Oyi,

      c’est vrai, c’est simple, mais çà serait tellement simple également de rajouter un champ sur un des écrans d’installations, en proposant le préfixe de table, comme le propose Mambo par exemple.

    Répondre à ce message

  • 2
    le doudoudidonc

    salut

    meme problème que nicolas ( voir mess ci dessous)

    après avoir créé mon fichier mes_options.php3 avec

    <?php $table_prefix = "plouf" ; $cookie_prefix = "plouf" ;  ?>

    j’obtient le message d’erreur suivant Attention : un problème technique (serveur MySQL) empêche l’accès à cette partie du site. Merci de votre compréhension.

    1146 Table ’mabasededonnées_db.plouf_meta’ doesn’t exist

    si des êtres doués d’une intelligence superieure on la parade ca serait cool dans faire profiter les autres. ;-)

    • Pour ma part, après avoir vidé les cookies et le cache de mon navigateur, tout est redevenu normal.

    • Bonjour

      c’est ma première intervention ici pour une précision et une question : la manip’ ci-dessus décrite ne fonctionne que si les deux bases sont créées en même temps et non si après avoir installé une première base vous en créez une seconde (en tout cas dans le cas d’une installation en local) ; sinon lors de l’accès à la première base dans /ecrire vous avez le message 1146 etc...n’existe pas ; d’où ma question : à part sauvegarder la base et les divers fichiers adaptés, les squelettes etc... pour une réinstallation de celle-ci en même temps que la seconde (voire la troisième, laquatrième) un spipeur expérimenté pourrait-il donner une solution plus « confortable » qui reste accessible à un newbie ?

      Merci de m’avoir lu

    Répondre à ce message

  • 1

    Bonjour,

    est-ce cette méthode permet au moteur de n’indexer que l’un deux sites ?

    Je m’explique :

    Avec un seul SPIP et donc une seule base, je souhaite deux sites :
    Le site internet pour tout le monde
    Le site extranet avec accès restreint.

    Le seul souci restant : Comment éviter que le moteur SPIP ignore l’indexation du contenu de la partie extranet lorsque l’on fait des recherches dnas la partie internet ?

    • Moi j’ai le même souci. Mes deux sites fonctionnent bien avec ees quelettes différents mais je n’arrive pas à isoler le contenu éditorial d’un site par rapport à l’autre. plutôt génant. Merci de vos lumières.

    Répondre à ce message

  • 1

    je viens de me rendre compte que s’il on utilise « _ » pour le préfix cookies ça bloque l’authentification, exemple : « spip_test »

    à préciser ?

    • salut les spipeurs
      après avoir créé mon fichier mes_options.php3
      avec

      <?php
      $table_prefix = "plouf";
      $cookie_prefix = "plouf";
      ?>

      j’obtient le message d’erreur suivant
      Attention : un problème technique (serveur MySQL) empêche l’accès à cette partie du site. Merci de votre compréhension.

      1146 Table ’mabasededonnées_db.plouf_meta’ doesn’t exist

      quelqu’un a t’il une idée ??

    Répondre à ce message

  • Bonjour,
    une question tout de même. Je souhaite réaliser un site avec un paramètre de connexion bizarre qui dit si je vais voir le site avec les squelettes qui sont dans répertoire 1 ou ceux qui sont dans répertoire 2.
    Comment puis je faire cela avec SPIP ?
    J’ai pensé utiliser le fichier mes_options.php3 et plus particulièrement la variable permettant de redéfinir l’endroit où se trouve les squelettes mais je ne sais pas comment faire ensuite ?

    Pour simplifier, je me suis dit que c’était un peu comme l’article présent ici mais dans ce cas j’ai deux interfaces privé (et ça je veux pas ;-))

    Quelqu’un sait comment faire ?

    Répondre à ce message

  • Bonjour,

    Je suis débutant en spip et je voudrais mettre un deuxieme site sur ma base.
    J’ai creer un dossier albums et j’ai mis le spip_loder à l’intérieur et j’ai réinstalle spip à partir de monsite.fr/albums/spip_loader.php3 mais j’arrive à la meme interface que mon autre site. Comment Faire ??
    merci.

    Répondre à ce message

  • 2

    Bonjour,
    j’ai un site preextistant à la racine,
    j’ai suivi les conseils du forum pour en installer un autre dans un repertoire.
    J’ai téléchargé mes_options.php3, dans le ecrire du répertoire.
    Le gros probleme, c’est que j’ai systematiquement le message suivant quand je fais next après
    http://monsite/repertoire/ecrire

    Je suis chez Free, et j’ai installé une version 1.7.2 multilingue.

    J’ai tout essayé, j’ai vidé complètement la base du spip racine (en la sauvagardant avant), j’ai meme essayé de mettre mes_options.php3 dans le écrire du site racine et ca donne exactement la même chose !
    Alors que lorsque je supprime mes_options tout va très bien et tout s’installe correctement !
    Ca fait un jour que je me bas pour avoir ces 2 sites sur une base. Est-ce qu’il va falloir que je crée les table à la main avec MYSQL et un autre préfixe que SPIP ?
    Merci de votre aide

    • Zut le warning ne semble pas etre passé dans mon message précédent !!!
      le voici :
      « Warning : Cannot modify header information - headers already sent by (output started at /var/www/free.fr/4/e/maxichouette/lenomcommun/ecrire/mes_options.php3:2) in /var/www/free.fr/4/e/maxichouette/lenomcommun/ecrire/install.php3 on line 368 »

    • madrilene

      j’ai tout essayé j’ai tjrs ce message de warning, y a t-il quellqu’un qui ait reussi a installer 2 spip sur la même base chez free ???????????

    Répondre à ce message

  • Bonjour,

    Pour des raisons de maintenance, j’ai pris l’habitude d’intaller mes sites web en sous répertoires. j’ai donc physiquement : http://www.monsite.fr/spip/
    je souhaiterais que ce sous-répertoire « spip » soit invisible aux internautes et qu’ils naviguent sous spip avec l’adresse suivante http://www.monsite.fr/

    Est-ce ce que peux faire :

    <?php
    $table_prefix = "plouf";
    $cookie_prefix = "plouf";
    ?>

    Pouvez-vous m’aider ???

    Répondre à ce message

  • 2

    salut,

    super info que je recherchais depuis longtemps afin de faire ses sous-sites sans soucis !
    Sur mon site commencé il y a un an j’ai mis tous les fichiers spip à la racine (pas conseillé ?) et je voudrais rajouter un répertoire avec un nouveau spip. Est-ce que si je mets les fichiers « mes_options » maintenant dans les differents répertoires « écrire » ça peut marcher ? Comment nommer alors le fichier qui se trouve dans « écrire » à la racine www du site (pas de nom de répertoire choisi ici !) ?
    Merci

    • Il est possible d’installer spip dans un sous répertoire d’un autre spip, dans ton cas tu crées un rep « nouveau-site » à la racine et tu installes spip dedans (avec la manip sur le mes_options décrite), pour le premier spip vu qu’il fonctionne tu le laisses tranquille, tout fonctionneras très bien (testé pour vous).

    • si le site préexistant, était dans un répertoire SPIP, suffit-il de renommer ce dossier en SPIIP par ex, ou faut-il aussi creer un mes_options pour ce site ?

      Si oui quand je vais réimporter la base ne risque -til pas d’y avaoir des problemes puisque l’indice devant le nom des tables aura changé ?

      Merci (pour l’instant je fais rien j’ai trop peur de fair une bêtise fatale)

    Répondre à ce message

  • 2

    Euh,juste une précisions parce que je n’ai pas bien compris :
    si les deux sites ont des interfaces en site privé différentes, ils ont chacun leur groupes de mots clefs, ils ne se melent pas hein ?

    Merci

    • les deux sites sont totalement indepandant comme si ils etaient sur deux PC differents.

    • Ok
      merci c’est super !

      Une autre question : si on a déjà un SPIP¨, sans un répertoire SPIP, qu’on a renommé le dossier contenant en SPIIP, est ce qu’on doit écrire un fichier mes_options.php3 pour ce site qui est déjà rempli ou seulement pour le second site ?
      Merci d’avance

    Répondre à ce message

  • Bonjour,

    je suis hébergé chez lautre qui m’autorise à créer plusieurs bases dans la base MySQL qui m’est allouée.

    Seul problème : impossible d’accéder à l’espace privé du second site créé qui me pond une URL du type :
    spip_login.php3 ?var_url=ecrire%2F.%2F

    est-ce du à la cohabitation des deux sites ?

    Répondre à ce message

  • 1

    toujours en complément de l’article je précise que :
    -  cette procédure n’est pas limitée à deux sites (perso j’en suis a trois, pas de probleme)
    -  depuis la 1.5. le premier site Spip peut être à la racine du site (ou dans son propre sous-répertoires) et les autres spip dans des sous-répertoires imbriqués

    • Dans le cas de l’imbrication la démarche est elle la même ?
      Quel avantage cela apporte t-il ?

    Répondre à ce message

  • 1

    J’ai un site free.
    j’ai dézippé les fichiers dans un repertoire « ryzom » à la racine de mon site, j’ai créé le fichier mes_options.php en remplacant le paf par ryzom et je l’ai uploadé dans le dossier « ryzom/ecrire/ ».
    Je suis ensuite aller sur mon site dans le dossier écrire de mon site http et j’obtient cette erreur :

    Warning : Unexpected character in input : ’\’ (ASCII=92) state=1 in /var/www/free.fr/1/1/toutetrien3/ryzom/ecrire/mes_options.php3 on line 2

    Parse error : parse error in /var/www/free.fr/1/1/toutetrien3/ryzom/ecrire/mes_options.php3 on line 2

    • en fait je voudrais protéger l’accès à la racine de mon spip par un htaccess et garder la protection spip pour la partie privée.

      — mais spip ne l’entend pas de cette oreille : si l’on s’authentifie sous htaccess il refuse l’accès à la partie privée sauf si le login et le mot de passe sont les mêmes que dans le htpasswd (j’ai testé ca marche, sauf que l’on peut pas se déconnecter, ).
      — c’est pourquoi le fichier mes_options m’intéresse, mais comment faire pour que ce marche pour un site déjà installé ?

    Répondre à ce message

  • 1
    Yanic Gornet

    J’utilise $spip_version = 1.727 ; .
    Mon hébergeur utilise MySQL 3.23.54 et PHP Version 4.1.2.

    Et bien dans un tel cas de figure, je n’arrive pas à ce que mes deux variables :
    -  $table_prefix = « paf » ;
    -  $cookie_prefix = « paf » ;
    soient prises en compte dans mon fichier mes_options.php3.

    Est-ce un bug de la susdite version ou bien une malencontreuse erreur de ma part ?

    • Yanic Gornet

      C’était une malencontreuse erreur de ma part : les balises du code php étaient mal écrites. J’ai honte. Spip marche très bien et mes_options.php3 aussi !

    Répondre à ce message

  • Delphiste47

    Bonjour,

    J’ai bien tout fait mais ca marche pas en local chez moi ?? avec mon Web local lorsque je clique sur mon 2e site il va à l’interface admin de EasyPHP, alors que sur le premier j’ai bien mon site ??
    Keske j’ai fais de pas bien ?

    Répondre à ce message

  • 1

    Dans cette procédure les fichiers SPIP sont copiés 2 fois et utilisent donc deux fois plus d’espace sur le disque.

    Est-il possible d’avoir :
    -  2 sites (ou plus)
    -  1 seul jeu de fichiers SPIP
    -  et 1 seule base ?

    ...Y’a pas d’petites zéconomies !

    JMarie

    • sans en être certain, je ne pense pas que ce soit possible (enfin si c possible c compliqué)

      le poids de laz distrib spip n’est pas excessif, si vraiment ça te pose un problème prend une version monolingue ça permets de faire aussi des économies !

    Répondre à ce message

  • 2

    Bonjour,

    Ceux qui veulent plusieurs sites et une seule base ont une autre solution, c’est de créer un niveau supérieur à l’aide d’un rubrique paf et d’une autre plouf et puis de gérer leur squelette en fonction de cela, c’estplus simple mais moins radical... il me semble que les deux solutions sont bonnes

    • oui avec un petit + pour cette methode :
      les 2 sites partagent le même espace d’administration et donc 1 seul login/mot de passe par personne B-)

    • cet avantage n’en est pas un si les sites parlent de sujets totalements différents, comme dans cet exemple : mélange des rédacteurs, mélanges des statistiques de visites...

    Répondre à ce message

  • 1

     :-(( Bonjour,

    Je craaaaque ! J’ai installé selon les indications un 2e SPIP dans un répertoire différent, avec un préfixe différent (spip_jn) et lors du passage d’un SPIP à l’autre j’ai ce réccurent message :

    « Erreur de connexion

    Vous êtes identifié sous le login admin, mais celui-ci n’existe pas/plus dans la base. Essayez de vous reconnecter, après avoir éventuellement quitté puis redémarré votre navigateur. »

    Je ne sais pas où il va chercher cet « admin » qui n’existe dans aucun des 2 SPIP installés !

    Tyrien

    PS. Je vais quand même essayer de tenir compte de la précision "Le préfixe ne doit pas commencer par « spip », car mon préfixe commence en fait par « spip », mais n’est pas égal à « spip » puisque c’est « spip_jn » !

    •  :-p Re-bonjour !

      Comme le montre le nouveau Smiley, tout fonctionne correctement après avoir ajouté un « i » au préfixe, histoire de fair « spiip-jn » au lieu de « spip_jn ». Je me suis coltiné le changement à la main (avec phpMyAdmin) mais quel bonheur de voir que tout tourne rond.

      Bravo à l’auteur de cette « contrib » qui maîtrise le français : effectivement, de façon stricte, les préfixes ne doivent pas commencer par "spip’. J’ai testé pour vous !

      Pour ceux qui se demandent à quoi j’ai joué, je précise que l’idée était d’avoir plusieurs fichiers de SPIP différents dans la MEME table. On peut donc supposer que dans ce cas-là cette table est déjà bien remplie de divers scripts PHP/MySQL. Donc, pour retrouver mes petits, j’ai souhaité au départ grâce au préfixe « spip » classer tout ce petit monde bien proprement par ordre alphabétique. Las ! J’ai dû me résoudre à remplacer « spip... » par « spiip... ». Mais, ça reste quand même bien rangé !

      Tyrien

    Répondre à ce message

  • Le Gai Patrick

    ouais !!!

    je cherchais depuis comment faire pour realiser mon site bilingue (memes articles ecris dans les deux langues ) sans avoir à utiliser deux jeux de tables ( qui avait pour conséquence que bien des tables etaient identiques comme celles des auteurs)
    En fait la solution deux grandes rubriques est la bienvenue bien ke je ne sache pas encore comment il faudra modifier le squelette pour prendre en compte cette modif

    Répondre à ce message

  • 2

    Est-ce qu’il est possible dans ce cas d’avoir deux adresses, par exemple www.paf.com et www.plouf.com ?
    (en supposant que l’on ai déjà acquis ces noms de domaines)
    Si oui, comment procéder ?

    Est-ce que vous avez des exemples de sites qui fonctionne déjà avec ce système d’une base SQL pour plusieurs sites voir d’une base pour plusieurs adresse ?

    Est-ce que l’on peut craindre une perte de performance (rapidité) si l’on installe un grand nombre de sites sur une même base SQL ?

    Cordialement,


    Ambroise Ingold
    http://ingold.free.fr


    • oui, si tu rediriges chez ton registrar vers des adresses http, il suffit d’envoyer chacune vers son dossier.

      Les deux spips sont alors completement independants. Ils ont dans une base unique chacun leurs noms de tables (aux mêmes suffixes) qui se différencient par leur préfixe ainsi modifié par rapport au nom standard.

      donc oui

      si c’est une histoire de DNS et non de http, je sais pas.

    • j’ai installe spip pour http://www.paf.com en francais et spip pour http://www.pouf.com en anglais mais les dates pour paf et pouf sont dans la meme langue pour les 2 sites.Si je configure le site pouf alors les 2 sites gerent les dates en anglais et si je configure paf alors les dates des 2 sites sont en francais .-DATE DE PUBLICATION ANTÉRIEURE-

    Répondre à ce message

  • parvuli

    et SVP comment faire quand on a déjà installé une version SPIP et on veut une deuxième par la suite, en ayant qu’une BD.
    Est-ce possible ? sans écraser la BD ?

    Répondre à ce message

  • 1

    bon, j’avoi eut plusieurs spip sur une base, je ne trouvais pas la soluce pour entrer dans admin sans qu’il me demande 3 fois mon login (problèmes de cookies... connectez vous sans cookie) je trouvais toujours pas, comme j’avais fait de la cuisine, j’avais aussi 2 dossiers /ecrirev1 et /ecrirev2 (très pratique pour avoir une interface admin différente (simple ou compliquée) je les avois détruit du coup.
    AAAAhhhh enfin yé trouvé la solution, c’est con mais bon ça marche...
    mon cookie s’appelait spipi je l’ai appelé spacaca et ça roule, entre cuisine et scatologie keskonsemarre.
    Sans dec, ne mettez pas spipquelquechose mais plutot suueitralala en cookie (si si j’ai des difficultés mais c’est le monde qui tourne dans l’ot sens promis) et heureusement que j’ai fini par tomber sur votre article, merci les gars, euh, les gus, les nonas, o tobien reudeuleu

    • Manque plus que l’article « Comment avoir deux sites internes différents pour un même site » :o)

    Répondre à ce message

  • 1
    sloanapy

    Bonjour !

    Merci pour cette information indispensable !

    Juste un petit détail à corriger. A la fin de la procédure, il est précisé que le fichier Mes_fonctions n’est pas écrasé. Il faudrait mentionner que le fichier Mes_options n’est pas affecté par les mises à jour (au même titre que Mes_fonctions).
    C’est un détail mais il suffit de si peu de choses pour jeter le trouble, parfois...

    Merci pour la procédure en tout cas.
    Sloanapy.

    • en effet, c’etait une coquille. C’est corrige, merci.

      Ben.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

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.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom