Un noyau SPIP 1.9, plusieurs sites !

Ce tutoriel tente de décrire une procédure pour utiliser la mutualisation des fichiers du noyau de SPIP 1.9, permettant d’avoir plusieurs sites SPIP utilisant un même noyau.

Pouvoir n’utiliser qu’un seul noyau de SPIP pour héberger plusieurs sites est une des grandes améliorations de SPIP 1.9. Voici une procédure pour utiliser cette fonctionnalité sur un hébergement qui permet l’url rewriting.

Nota SPIP-Contrib : la mutualisation évolue (dans la branche 1.9.3 dev), voir le dernier article sur ce sujet La mutualisation facile : modifications manuelles

Introduction

Pour ma part, j’ai mis du temps à comprendre le fonctionnement et à pouvoir rendre cela fonctionnel. Un tutoriel ne sera donc pas de trop pour ceux qui veulent aussi tenter l’expérience (testée sur Ouvaton).

Ce tutoriel s’adresse plutôt aux hébergés qu’aux hébergeurs, qui, je suppose, utiliseront les Alias ou VirtualHost d’Apache.

Ce tutoriel s’inspire du ticket 186 qui utilise des Alias.

2Déroulement2

J’ai installé un SPIP 1.9 avec plusieurs sites de deux manières : SPIP à la racine du compte, ou dans un sous répertoire. Peu de choses changent en fait, mais il est utile de les connaître !

Cas (1), à la racine du serveur :

-  http://mon_serveur.org/

avec les sites spips de type :
-  http://mon_serveur.org/mon_site/ ,
-  http://mon_serveur.org/mon_autre_site/

Cas (2), dans un répertoire du serveur :

-  http://mon_serveur.org/mes_spips/

avec les sites spips de type :
-  http://mon_serveur.org/mes_spips/mon_site/ ,
-  http://mon_serveur.org/mes_spips/mon_autre_site/

Remarquez que vous pouvez utiliser l’adresse http://mon_serveur.org/ ou http://mon_serveur.org/mes_sites/ pour avoir un SPIP aussi à cet endroit. Il vous suffit d’aller dans http://mon_serveur.org/ecrire/ ou http://mon_serveur.org/mes_sites/ecrire/ et de configurer.

Si vous avez déjà un site en SPIP 1.9 configuré, vous pouvez aussi suivre ce tutoriel pour en creer d’autres, dans un sous-dossier. Votre premier site continuera de fonctionner correctement.

21- Création des dossiers accueillant les sites2

Creer un dossier dans le répertoire hébergeant SPIP
nommé SITES (ou le nom que vous voulez, à condition de le changer partout dans le turoriel) (au même niveau que CACHE, IMG,...)

Dans ce dossier, créer un sous dossier pour chacun des sites (mon_site, mon_autre_site), et dans chacun :

des sous dossiers :
-  CACHE,
-  IMG,
-  data,
-  upload,
-  squelettes (éventuellement)

des fichiers (éventuellement) :
-  .htaccess (obligatoire ou non ?)
-  mes_fonctions.php
-  mes_options.php

22- Création et modification du .htaccess2

Le .htaccess doit être modifié pour rediriger les adresses des sites SPIP correctement.

(Ce n’est pas la méthode décrite par le ticket 186 qui modifie le fichier de configuration du serveur Apache en créant des Alias, ce qu’on ne peut pas faire dans un .htaccess)

(Il faut donc, dans notre cas, que le serveur autorise le mod_rewrite d’Apache)

Le but est que les adresses de type :
-  http://mon_serveur.org/mon_site ou http://mon_serveur.org/mes_spips/mon_site

soient redirigées vers :
-  http://mon_serveur.org/ ou http://mon_serveur.org/mes_spips/

pour être traitées par :
-  http://mon_serveur.org/spip.php ou http://mon_serveur.org/mes_spips/spip.php

Créer le fichier .htaccess, en copiant le fichier htaccess.txt .
Puis selon le cas...

3Cas (1) : racine du serveur3

Le .htaccess est à ce niveau :
-  http://mon_serveur.org/.htaccess

À l’intérieur, mettre :

  • Dans Configuration :
    • RewriteBase /
  • Dans Réglages personnalisés :
    • RewriteRule ^mon_site/(.*) /$1 [QSA,L]
    • RewriteRule ^mon_autre_site/(.*) /$1 [QSA,L]

3Cas (2) : répertoire du serveur3

Le .htaccess est à ce niveau :
-  http://mon_serveur.org/mes_spips/.htaccess

A l’intérieur, mettre :

  • Dans Configuration :
    • RewriteBase /mes_spips/
  • Dans Réglages personnalisés :
    • RewriteRule ^mon_site/(.*) /mes_spips/$1 [QSA,L]
    • RewriteRule ^mon_autre_site/(.*) /mes_spips/$1 [QSA,L]

23- Création et modification de ecrire/mes_options.php2

Il faut maintenant dire à SPIP que les adresses comportant des dossiers dans l’url (/mon_site) doivent être utilisés comme des SPIP autonomes, si leur dossier existe.

3Pour information3

Toute modification de ce fichier affectera les options de tous les sites hébergés.

Par exemple, mettre dans ce fichier :
-  $type_urls = ’propres’ ;

Donnera par défaut à tous les sites ce type d’url... Mais chaque site peut le changer dans son propre /mon_site/mes_option.php

3Cas (1) : racine du serveur3

Créer/éditer le fichier ecrire/mes_options.php :
Le mes_options.php est à ce niveau :
-  http://mon_serveur.org/ecrire/mes_options.php

Ajouter entre

<?php et ?>

ces lignes :

  if ( preg_match(',/([a-zA-Z0-9_-]*)[/?],',$_SERVER['REQUEST_URI'],$r)) {
        if (is_dir($f = _DIR_RACINE . 'SITES/' . $r[1]. '/')) {
                $cookie_prefix = $table_prefix = $r[1];
                	
                define('_SPIP_PATH', 'SITES/' . $table_prefix  . '/:./:dist/:formulaires/:ecrire/');
                define('_DIR_IMG', $f.'IMG/');
                define('_DIR_DOC', _DIR_IMG);
                define('_DIR_CACHE', $f.'CACHE/');
                define('_DIR_SESSIONS', $f.'data/');
                define('_DIR_TRANSFERT', $f.'upload');
                define('_FILE_CONNECT_INS', $f.'inc_connect');
                
	        $GLOBALS['dossier_squelettes'] = $f.'squelettes';
                
                if (is_readable($f .= 'mes_options.php')) include($f);
        }
  }

Un rapide détail s’impose

Par défaut, la ligne
-  $cookie_prefix = $table_prefix = $r[1] ;

Va créer des tables mysql avec des préfixes ayant le nom du répertoire contenant le site : mon_site_article à la place de spip_article par exemple. Cela permet d’héberger tous les sites sur une seule et même base de données. Vous pouvez garder le préfixe par défaut (spip), mais il faut penser à avoir plusieurs bases de données différentes pour chaque site. _ Pour cela, mettre à la place :
-  $cookie_prefix = $r[1] ;

La ligne ci dessous définit l’adresse du dossier de squelette (mon_site/squelettes) :
-  $GLOBALS[’dossier_squelettes’] = $f.’squelettes’ ;

Pour que tous les sites aient le même squelette situé dans http://mon_serveur/squelettes/ vous pouvez enlever le $f. pour n’avoir que :
-  $GLOBALS[’dossier_squelettes’] = ’squelettes’ ;

3Cas (2) : répertoire du serveur3

On ajoute ces lignes entre

<?php et ?>

du fichier http://mon_serveur/mes_sites/ecrire/mes_options.php :

  if ( preg_match(',/mes_sites/([a-zA-Z0-9_-]*)[/?],',$_SERVER['REQUEST_URI'],$r)) {
        if (is_dir($f = _DIR_RACINE . 'SITES/' . $r[1]. '/')) {
                $cookie_prefix = $table_prefix = $r[1];
                	
                define('_SPIP_PATH', 'SITES/' . $table_prefix  . '/:./:dist/:formulaires/:ecrire/');
                define('_DIR_IMG', $f.'IMG/');
                define('_DIR_DOC', _DIR_IMG);
                define('_DIR_CACHE', $f.'CACHE/');
                define('_DIR_SESSIONS', $f.'data/');
                define('_DIR_TRANSFERT', $f.'upload');
                define('_FILE_CONNECT_INS', $f.'inc_connect');
                
	        $GLOBALS['dossier_squelettes'] = $f.'squelettes';
                
                if (is_readable($f .= 'mes_options.php')) include($f);
        }
  }

En fait, toute la nuance est dans le preg_match...

24- Création et modification de mon_site/.htaccess2

(je ne suis pas sûr que ce soit indispensable)

Mettre dans Configuration :

  • Cas (1)
    • RewriteBase /mon_site/
  • Cas (2)
    • RewriteBase /mes_spips/mon_site/

Conclusion

Si vous êtes chanceux, peut être que ça fonctionne !

Pour lancer la procédure d’installation de vos sites, allez dans le répertoire écrire :
-  http://mon_serveur/mon_site/ecrire/
-  http://mon_serveur/mes_spips/mon_site/ecrire/

Il faut bien configurer l’adresse de vos sites dans l’interface privée :
http://mon_serveur.org/mon_site/ ou http://mon_serveur.org/mes_spips/mon_site/

Il se peux que vous croisiez certains problèmes par la suite, comme trouver la bonne url pour faire fonctionner un javascript... J’ai du pour la configuration d’un menu dépliant (pour l’image des + et - qui se configure dans le javascript) mettre : SITES/nom_site/squelettes/img/mon_image.gif à la place de img/mon_image.gif . SInon, rien de bien méchant.

Alors si tout fonctionne, quand Spip passera en version 2.0 (je sais que vous en rêvez déjà !), vous n’aurez qu’un seul noyau à mettre à jour !

Discussion

21 discussions

  • 11

    Salut,

    J’ai eu beau essayer toutes les manips possibles, j’ai pourtant du oublier qq chose, puisque lorsque je fais tout ça :

    • Installation de spip à la racine de mon serveur. Et mise en route via /ecrire/
    • Création de SITES à la racine du serveur aussi donc
    • Création des dossiers de sites et leurs sous-dossiers dans SITES
    • Création de mes_options.php dans le dossier écrire de la racine du serveur
    • Ecriture du .htaccess

    Ca ne fonctionne pas :

    • Lorsque je crée mes_options.phpdans /ecrire/ le site principal indique qu’il est en travaux.
    • Lorsque je m’occupe des sous sites, ils veulent bien s’installer via site/ecrire/ mais une fois mis en route, ils m’indiquent toujours lorsque je les visite ’erreur 404 pas de site à cette adresse’

    Je perds espoir quand je vois que plus ou moins tout le monde y arrive :-|

    Merci d’avance de toute aide qui vous pourrez m’apporter

    O

    • Pouvez-vous donner un peu plus d’indications ? adresse des sites, rewritebase, configuration de mes_options (la ligne if... principalement), windows ou linux, en local ou sur le web ?

      Merci, MM.

    • Merci de ton aide Matthieu.

      Il s’agit d’un hébergement linux (RHEL3 - Apache 2), avec la dernière version spip svn (je viens de faire un update) et en intranet (pas de tests possibles de l’extérieur, désolé).
      Le site principal : http://spip.servwebdev/ et les sous sites : http://spip.servwebdev/site1/ (pour l’instant je n’en ai fait qu’un seul). site1 se trouve PHYSIQUEMENT dans spip.servwebdev/SITES/site1/

      Dans le .htaccess à la racine de spip.servwebdev, RewriteBase vaut / et RewriteRule ^site1/(.*) /$1 [QSA,L]

      Le mes_options.php dans le ecrire du site principal contient

      if ( preg_match(',/([a-zA-Z0-9_-]*)[/?],',$_SERVER['REQUEST_URI'],$r)) {
              if (is_dir($e = _DIR_RACINE . 'SITES/' . $r[1]. '/')) {
                      $cookie_prefix = $table_prefix = $r[1];
                      define('_SPIP_PATH',
                             _DIR_RACINE . 'SITES/' . $table_prefix  . '/:' .
                             _DIR_RACINE .'dist/:' .
                             _DIR_RACINE .'formulaires/:' .
                             _DIR_RESTREINT);
                      spip_initialisation_parametree($e, $e) ;
                      
                      $GLOBALS['dossier_squelettes'] = _DIR_RACINE .'squelettes';
                      if (is_readable($e .= 'mes_options.php')) include($e);
                      
              }
      }

      J’ai du faire une bourde qq part mais impossible de savoir où :-/

      Quand on accède à spip.servwebdev/site1/ avec les paramètres que je cite, ça fait une boucle infinie qui affiche en continue ’Mon site SPIPMon site SPIP’... et la page est intitulée erreur 404.

      Une idée ? merci d’avance

    • Voir plus bas le post sur les corrections du htaccess.

      Une erreur de ma part. Désolé.

      En espérant (aussi) que la modification corrige le problème.

      MM.

    • Désolé, ça ne corrige pas le problème. J’ai activé le RewriteLog avec un niveau maximal histoire de voir ce qu’il se passe.

      Bon apparemment c’est plus rentable de conserver le /$1 au lieu du $1, ça fait une étape de moins.

      Par contre moi je boucle et je ne sais pas pourquoi :-(

      [rid#8e44180/initial] (3) [per-dir /var/www/html/spip/] add path info postfix: /var/www/html/spip/site1 -> /var/www/html/spip/site1/spip.php
      [rid#8e44180/initial] (3) [per-dir /var/www/html/spip/] strip per-dir prefix: /var/www/html/spip/site1/spip.php -> site1/spip.php
      [rid#8e44180/initial] (3) [per-dir /var/www/html/spip/] applying pattern '^site1/(.*)' to uri 'site1/spip.php'
      [rid#8e44180/initial] (2) [per-dir /var/www/html/spip/] rewrite site1/spip.php -> /spip.php
      [rid#8e44180/initial] (2) [per-dir /var/www/html/spip/] trying to replace prefix /var/www/html/spip/ with /
      [rid#8e44180/initial] (1) [per-dir /var/www/html/spip/] internal redirect with /spip.php [INTERNAL REDIRECT]
      [rid#8e521a0/initial/redir#1] (3) [per-dir /var/www/html/spip/] strip per-dir prefix: /var/www/html/spip/spip.php -> spip.php
      [rid#8e521a0/initial/redir#1] (3) [per-dir /var/www/html/spip/] applying pattern '^site1/(.*)' to uri 'spip.php'
      [rid#8e521a0/initial/redir#1] (3) [per-dir /var/www/html/spip/] strip per-dir prefix: /var/www/html/spip/spip.php -> spip.php
      [rid#8e521a0/initial/redir#1] (3) [per-dir /var/www/html/spip/] applying pattern '.' to uri 'spip.php'
      [rid#8e521a0/initial/redir#1] (4) RewriteCond: input='/var/www/html/spip/spip.php' pattern='-f' => matched
      [rid#8e521a0/initial/redir#1] (1) [per-dir /var/www/html/spip/] pass through /var/www/html/spip/spip.php
      [rid#8e44180/initial] (3) [per-dir /var/www/html/spip/] add path info postfix: /var/www/html/spip/site1 -> /var/www/html/spip/site1/spip.php
      [rid#8e44180/initial] (3) [per-dir /var/www/html/spip/] strip per-dir prefix: /var/www/html/spip/site1/spip.php -> site1/spip.php
      [rid#8e44180/initial] (3) [per-dir /var/www/html/spip/] applying pattern '^site1/(.*)' to uri 'site1/spip.php'
      [rid#8e44180/initial] (2) [per-dir /var/www/html/spip/] rewrite site1/spip.php -> /spip.php
      [rid#8e44180/initial] (2) [per-dir /var/www/html/spip/] trying to replace prefix /var/www/html/spip/ with /
      [rid#8e44180/initial] (1) [per-dir /var/www/html/spip/] internal redirect with /spip.php [INTERNAL REDIRECT]

      Et ainsi de suite, comme s’il n’arrivait pas à trouver spip.php pourtant il dit le contraire (pattern -f) !

      J’avoue être perdu là, je ne vois rien d’anormal.

    • J’avais eu un problème similaire... Une boucle infinie dès que spip arrivait sur #FORMULAIRE_RECHERCHE je crois dans inc-head.html, et il ne trouvait pas le fichier formulaire correspondant...

      Il me semble que j’avais copié /formulaires dans /SITES/mon_site/formulaires

      Tentes cela pour voir ?

    • Merci bien Mat. Je ne boucle plus, par contre j’ai toujours l’erreur 404. Je vais pouvoir investiguer un peu plus.

    • Ahah !

      J’ai trouvé la source de mon erreur 404... J’ai fait la bêtise de nommer mon dossier SITES/site1 or le système de gestion des urls croit qu’il doit ouvrir le site syndiqué numéro 1 ! Une fois renommé en siteA et ayant fait les modifs nécessaires ça marche un peu mieux. J’ai d’autres erreurs (impossible de se loguer dans ecrire/), mais il ne doit plus rester grand chose.

      Donc la leçon à retenir de tout ça, c’est d’éviter un nom qui appartient à Spip.

    • Merci pour tout MM.

      Tout fonctionne (enfin il semblerait pour l’instant). Le préfixe des tables ne correspondaient forcément plus entre site1 et siteA.

      Et du coup j’ai remis les urls propres, je les soupçonnais d’être fautives. Perfect !

      P.S. J’ai moi aussi eu le hic avec le slash final. J’ai résolu le problème comme ceci :

      RewriteRule ^siteA$ /siteA/ [R]
      RewriteRule ^siteA/(.*) /$1 [QSA,L]

      Bon bien sûr, il faut le répéter à chaque nouveau site, mais c’est mieux que rien.

    • Excellent, merci pour le slash final.

      Ca marche aussi, du coup, très bien comme cela (cas 1 & 2) :

      RewriteRule ^mon_site$ mon_site/ [R]
      RewriteRule ^mon_site/(.*) $1 [QSA,L]

      Par contre, je n’ai pas réussi avec le cas des redirections génériques (rewritecond + rewrite rule).

      J’ai tenté un long truc... il remplace bien mon_site par mon_site/, mais m’affiche une page 302 Found... tant pis...
      Je donne le code au cas où quelqu’un trouverait l’erreur...

      Pour cas 2 (enlever /mes_spips pour le cas 1)

      # recherche des adresses /mon_site pour mettre /mon_site/
        RewriteCond %{REQUEST_URI} ^/mes_spips/([^/\.]+)$
        RewriteCond %{REQUEST_FILENAME} ^(.*)/([^/\.]+)$
        # vérification de l'existance du répertoire /SITES/mon_site/
        RewriteCond %1/SITES/%2/ -d
        # réécrire l'adresse avec le /
        RewriteRule ^([^/]+)$ $1/ [R]
      
      # redirection de /mon_site/ vers /
        RewriteCond %{REQUEST_URI} !^/mes_spips/(CACHE|dist|ecrire|formulaire|IMG|oo|plugins|SITES|squelettes)/(.*)
        RewriteRule ^[^/]+/(.*) $1 [QSA,L]

      Encore merci pour le truc du /,

      MM.

    • Ya pas de quoi :-)

      Perso, comme je le disais plus haut, j’ai gardé le / devant le $1, parce que lorsqu’on regarde les logs du rewrite, on voit que, si le / n’est pas présent, il l’ajoute, ce qui fait une étape supplémentaire. Maintenant est-ce que ça fonctionne tout le temps...

      D’autre part si je ne mets pas le / pour la redirection :
      RewriteRule ^siteA$ siteA/ [R]
      au lieu de
      RewriteRule ^siteA$ /siteA/ [R]

      Je me retrouve avec un double slash : http://spip.servwebdev//siteA/

      Autre chose, si on utilise la directive Alias, il n’y a aucun problème de ’trailing slash’.

      Enfin pour ton code, chez moi il marchotait. si je fais http://spip.servwebdev/siteA il m’affiche bien siteA mais il n’ajoute pas le / final (du coup avec les urls propres, dès qu’on change de rubrique il croit être dans le site principal). Alors j’ai ajoute un L à la règle, puis le / devant, sinon je retrouve mon problème de double /. Je croyais que le R était forcément le dernier exécuté, mais visiblement non.

      Ce qui donne :
      RewriteRule ^([^/]+)$ /$1/ [R,L]

    • Ha, bien le code générique pour le /

      Un poil expéditif : http://mon_serveur.org/mon_site se redirige avec un / : OK

      Mais http://mon_serveur.org/mon_article_du_moyau fait la même chose comme si c’était un répertoire !

      MM.

    Répondre à ce message

  • 2

    bonjour

    en premier lieu bravo !

    en deuxième je n’arrive trouver le bon bout pour gerer des sousdomaines style

    http://toto.mondomaines.org/
    http://tata.mondomaines.org/
    http://tutu.mondomaines.org/
    chez ovh sur un 240 plan

    si vous avez une idée lumineuse ;)

    pour spip

    tom

    • Il y a plusieurs redirections à faire...
      Il faut pouvoir accéder à la configuration apache du serveur.

      Ce que je propose est « à tester » (je l’avais testé en local sous linux Ubuntu Dapper Drake)...

      Si vous travaillez en local, il faut rediriger « http://mon_serveur.org » vers 127.0.0.1 (un fichier hosts à modifier - dans /etc/hosts sous linux Ubuntu de mémoire).

      Dans la configuration d’apache, il faut rediriger les noms de sous domaines dans le dossier contenant SPIP...
      Par exemple avec ces lignes (à modifier selon le serveur et l’emplacement de spip) :

      Tous les sous domaines (spip mutualisés), ici, sont redirigés vers le domaine.

      # SERVEUR mon_serveur.org
      <VirtualHost *>
              ServerName mon_serveur.org
              ServerAlias *.mon_serveur.org
      
              RewriteEngine On
      
              # pages par défaut
              DocumentRoot "/var/www/mon_serveur.org"
              <Directory "/var/www/mon_serveur.org/">
                      AllowOverride All
                      Order allow,deny
                      Allow from all
              </Directory>
      
              # SPIP (sites)
              # (un_site.mon_serveur.org/* -> /var/www/mon_serveur.org/*)
                 RewriteCond %{SERVER_NAME} (www\.)?([^.]+)\.mon_serveur\.org$
                RewriteRule (.*) /var/www/mon_serveur.org/$1 [QSA,L]
      
      </VirtualHost>

      Ensuite, dans le .htaccess, magiquement, mis à part un rewriteBase /, ne rien mettre...

      Puis dans mes options, il faut qu’il redirige l’adresse sous_domaine.mon_serveur.org vers une configuration /SITES/sous_domaine/

      Exemple :

      $mutualisation_dossier_sites = 'SITES/%1/';
      $mutualisation_regxp_nom_du_site = '^(www\.)?(.+)\.mon_serveur\.org';
      $mutualisation_regxp_chercher_dans = $_SERVER['SERVER_NAME'];
      $mutualisation_regxp_numero_reponse = 2;
      
      if ( preg_match(",$mutualisation_regxp_nom_du_site,",$mutualisation_regxp_chercher_dans, $r)) {
      
                      $mutualisation_dossier_site = str_replace("%1", $r[$mutualisation_regxp_numero_reponse], $mutualisation_dossier_sites);
                     
             if (is_dir($e = _DIR_RACINE . $mutualisation_dossier_site)) {
                     $cookie_prefix = $table_prefix = $r[$mutualisation_regxp_numero_reponse];
                     define('_SPIP_PATH',
                            _DIR_RACINE . $mutualisation_dossier_site.':' .
                            _DIR_RACINE .'dist/:' .
                            _DIR_RACINE .'formulaires/:' .
                            _DIR_RESTREINT);
      
                     # (Dé)commentez le bon passage
                     /* Pour SPIP 1.9 (version de développement) > svn [6841] */       
                     # Une seule ligne suffit :
                     # spip_initialisation_parametree($e, $e) ;
                      /* Fin pour SPIP 1.9 (version de développement) > svn [6841] */       
      
                     /* Pour SPIP 1.9 (version stable) ou < svn [6841] */
                    define('_DIR_IMG', $e.'IMG/');
                    define('_DIR_DOC', _DIR_IMG);
                    define('_DIR_LOGOS',  _DIR_IMG);
       
                    define('_DIR_CACHE', $e.'CACHE/');
                    define('_DIR_PLUGINS', $e . "plugins/");
       
                    define('_DIR_SESSIONS', $e.'data/');
                    define('_DIR_TRANSFERT', $e.'upload');
      
                    define('_FILE_CONNECT_INS', $e.'inc_connect');          
                     /* Fin pour SPIP 1.9 (version stable)  */       
      
                     /* Chemin du dossier_squelette */
                      $GLOBALS['dossier_squelettes'] = $e.'squelettes'.':dist';
             
                     if (is_readable($e .= 'mes_options.php')) include($e);
             }
      }

      Bon Spip, bons tests, bonnes corrections...

      MM.

    • chapeau !

      merci part contre je n’ai pas acces à la conf apache sur du mutualisé...

      je vais continuer à faire chauffer les neurones.

      bonne journée

      tom

    Répondre à ce message

  • 12

    En suivant le tutotrial pour rendre spip multi sites, j’ai des erreurs

    voici ma configuration :

    sous serveur Linux en Intranet, j’ai copié les fichiers Spip de la version 1.9 dans un répertoire que le service systeme de mon entreprise ma imposé.
    L’installation comme d’habitude s’est bien passée.

    (dans ce tutoriel je ne comprend pas la différence entre « à la racine du serveur » et « dans un répertoire du serveur » dans la mesure ou un site est toujours un répertoire
    dans l’arborescence sur un serveur)

    Le répertoire ou est placé le noyau Spip 1.9 est : /nfs/users/drd/drh/spip19
    j’ai plusieurs sites SPIP qui fonctionnent déjà à cet emplacement, comme : /nfs/users/drd/drh/portailtest (le portail RH en Spip 1.8.2)

    Pour me connecter à mon site nouvellement créé, je le fais de 2 manières :
    -  http://zeus/drh/spip19 (zeus est le nom du serveur)
    -  http://spip19 (j’ai fait créer et pointer le DNS)

    Jusque là tout fonctionne bien.

    Pour rendre SPIP multi sites, j’ai fait les modifs du tutoriel et ca ne marche plus.


    Il est dit : Creer un dossier dans le répertoire hébergeant SPIP nommé SITES
    j’ai bien créé un répertoire : /nfs/users/drd/drh/spip19/SITES

    il est dit : Dans ce dossier, créer un sous dossier pour chacun des sites
    j’ai bien créé un répertoire : /nfs/users/drd/drh/spip19/SITES/portailtest

    il est dit : et dans chacun les sous/réperoires CACHE, IMG etc (ce que j’ai fait)

    J’ai demandé à l’équipe système que Apache autorise le .htaccess et le mod_rewrite (des tests ont fonctionnés)

    J’ai renommé le fichier spip19/htaccess.txt en .htaccess et j’ai apporté les modifs suivantes :
    RewriteBase /drh/spip19/ (spip19/spip.php est bien exécuté),
    alors qu’avec RewriteBase / , j’avais un message d’erreur, /spip.php NOT FOUND

    RewriteRule ^portailtest/(.*) /$1 [QSA,L]


    Dans /nfs/users/drd/drh/spip19/ecrire/mes_opttions.php, j’ai mis :

    $type_urls = ’propres’ ;
    + ce qui est dit ...


    Avec l’url suivante : http://zeus/drh/spip19/portailtest
    j’ai l’Erreur 404

    Avec l’url suivante : http://zeus/drh/spip19/
    j’ai l’erreur :
    Fatal error : Call to undefined function : generer_url_article() in /nfs/users/drd/drh/spip19/ecrire/public/composer.php(47) : eval()’d code on line 55

    En espérant avoir été suffisament clair, merci d’avance de votre aide.

    • Bonjour,

      Effectivement, il y a peu de différences entre les deux cas présentés. Ce que je veux dire, c’est que http://zeus/drh/spip19 est un répertoire (/drh/spip19) du serveur zeus alors que http://spip19 est la racine du serveur (par rapport à l’adresse l’url)

      Tel que le tutorial est présenté, vous ne pourrez pas faire fonctionner les 2 en même temps, vu que les lignes (rewrite base) de .htaccess et la configuration de mes_options.php vont changer en fonction.


      Avec http://zeus/drh/spip19/ il faut mettre :

      -  rewritebase /drh/spip19/

      effectivement, et dans mes_options.php ceci :
      (C’est peut-être ici le problème, penser à mettre le sous répertoire dans lequel baigne spip) :

      if ( preg_match(',^/drh/spip19/([a-zA-Z0-9_-]+)/,',$_SERVER['REQUEST_URI'],$r)){
      
      + la suite

      Pas besoin de $type_url = ’propres’, c’était un exemple pour montrer que cette ligne, si elle est mise affecte tous les sites hégerbés, comme si c’était leur configuration par défaut.

      Pour tester : http://zeus/drh/spip19/portailtest/ (sans le / final -> erreur 404)
      et : http://zeus/drh/spip19/


      Accessoirement, vérifier les permissions des fichiers et dossiers créés, notamment le mes_options.php qui doit pouvoir être lu (chmod 644 chez moi)

      En espérant aider un peu...
      MM.

    • Merci de votre aide !

      j’ai bien rajouté la chaine /drh/spip19, ce qui donne :
      if ( preg_match(’,^/drh/spip19/([a-zA-Z0-9_-]+)/,’,$_SERVER[’REQUEST_URI’],$r))

      http://zeus/drh/spip19/ ou http://zeus/drh/spip19 fonctionnent

      par contre avec : http://zeus/drh/spip19/portailtest
      j’ai toujours l’erreur 404 (alors que je n’ai pas vu dans aucun .htaccess de mon site une gestion de l’erreur 404)
      avec : http://zeus/drh/spip19/portailtest/ (le caractere / en plus)
      je tombe sur la page d’accueil du serveur apache de la même manière qu’avec http://zeus
      la chaine drh/spip19/portailtest/ semble etre substituée par rien (il reste zeus dans la chaine apparament)

      voici mon réglage personnalisé
      ################ REGLAGES PERSONNALISES ######################
      # Inscrivez ci-dessous vos reglages supplementaires
      RewriteRule ^portailtest/(.*) /$1 [QSA,L]

      Merci de votre aide.

    • Merci de ne pas crier, mais je crois que j’ai trouvé l’erreur... Erreur de ma part sur le .htaccess :

      Corrections du .htaccess :

      Il faut mettre (sans / avant le $1 ) :
      -  RewriteRule ^mon_site/(.*) $1 [QSA,L]
      -  RewriteRule ^mon_autre_site/(.*) $1 [QSA,L]

      Ou, éventuellement, si aucun dossier particulier n’est utilisé en dehors de ceux de spip (listés dans la ligne RewriteCond), rediriger tous les dossiers http://mon_serveur.org/mon_dossier/ vers un site Spip mutualisé nommé ’mon_dossier’ :

      Cas 1 :

      RewriteCond %{REQUEST_URI} !^/(CACHE|dist|ecrire|formulaire|IMG|oo|plugins|SITES|squelettes)/(.*)
      RewriteRule ^[^/]+/(.*) $1 [QSA,L]

      Cas 2 :

      RewriteCond %{REQUEST_URI} !^/mes_spips/(CACHE|dist|ecrire|formulaire|IMG|oo|plugins|SITES|squelettes)/(.*)
      RewriteRule ^[^/]+/(.*) $1 [QSA,L]

      En espérant que cela corrige vos problèmes.
      MM.

    • Je ne crie pas, le ! signifie ma joie

      merci de cette réponse qui à remédié au problème :
      il faut mettre (sans / avant le $1 ) :
      RewriteRule ^mon_site/(.*) $1 [QSA,L]

      par contre pour fonctionner il faut mettre le / en fin d’URL comme : http://zeus/drh/spip19/portailtest/
      sinon on a l’erreur 404

      et http://zeus/drh/spip19/portailtest/ecrire/
      sinon on va à l’administration du site racine


      par contre :
      RewriteCond %REQUEST_URI !^/(CACHE|dist|ecrire|formulaire|IMG|oo|plugins|SITES|squelettes)/(.*)
      RewriteRule ^[^/]+/(.*) $1 [QSA,L]
      n’a pas fonctionné


      presque tout fonctionne
      sauf que pour la page d’accueil de mon sous site portailtest,
      le squelette appellé est celui du répertoire squelettes ou est installé Spip,
      et les rubriques, articles ... appellent bien le squelette dans SITES/portailtest/squelettes

      j’ai essayé spip_initialisation_parametree($f, $f), mais ca marche pas.
      J’ai vu dans le forum que certains rajoutaient des lignes dans ce .htaccess
      Pouvez-vous reposter un message avec un résumé de ce qu’il faut mettre dans le .htaccess ...
      Merci de votre aide

    • Pour votre cas, ce serait plutôt dans le .htaccess :

      RewriteBase /drh/spip19/
      
      RewriteCond %{REQUEST_URI} !^/drh/spip19/(CACHE|dist|ecrire|formulaire|IMG|oo|plugins|SITES|squelettes)/(.*)
      RewriteRule ^[^/]+/(.*) $1 [QSA,L]

      Pour le ecrire/mes_options.php :

      -  Pour spip 1.9

      if ( preg_match(',^/drh/spip19/([a-zA-Z0-9_-]+)/,',$_SERVER['REQUEST_URI'],$r)){
             if (is_dir($f = _DIR_RACINE . 'SITES/' . $r[1]. '/')) {
                     $cookie_prefix = $table_prefix = $r[1];
                            
                     define('_SPIP_PATH', 'SITES/' . $table_prefix  . '/:./:dist/:formulaires/:ecrire/');
                     define('_DIR_IMG', $f.'IMG/');
                     define('_DIR_DOC', _DIR_IMG);
                     define('_DIR_CACHE', $f.'CACHE/');
                     define('_DIR_SESSIONS', $f.'data/');
                     define('_DIR_TRANSFERT', $f.'upload');
                     define('_FILE_CONNECT_INS', $f.'inc_connect');
                     
                      $GLOBALS['dossier_squelettes'] = $f.'squelettes';
                     
                     if (is_readable($f .= 'mes_options.php')) include($f);
             }
       }

      -  spip 1.9 svn :

      if ( preg_match(',/drh/spip19/([a-zA-Z0-9_-]*)[/?],',$_SERVER['REQUEST_URI'],$r)) {
             if (is_dir($e = _DIR_RACINE . 'SITES/' . $r[1]. '/')) {
                     $cookie_prefix = $table_prefix = $r[1];
                     define('_SPIP_PATH',
                            _DIR_RACINE . 'SITES/' . $table_prefix  . '/:' .
                            _DIR_RACINE .'dist/:' .
                            _DIR_RACINE .'formulaires/:' .
                            _DIR_RESTREINT);
                     spip_initialisation_parametree($e, $e) ;
                     
                     {{$GLOBALS['dossier_squelettes'] = $e.'squelettes'}};
                     if (is_readable($e .= 'mes_options.php')) include($e);
                     
             }
      }

      Bonne chance !
      MM.

    • Sans les accolades bien sûr dans spip svn le :
      $GLOBALS[’dossier_squelettes’] = $e.’squelettes’ ;

      MM.

    • Bonjour,
      encore moi, désolé de vous ennuyer.
      C’est vrai que je suis presque au but, mais les 2 lignes que j’ai ajoutées dans .htaccess :

       !^/drh/spip19/(CACHE|dist|ecrire|formulaire|IMG|oo|plugins|SITES|squelettes)/(.*)
      RewriteRule ^[^/]+/(.*) $1 [QSA,L]

      provoque l’erreur : internal server error avec http://zeus/drh/spip19/portailtest/
      et erreur 404 avec : http://zeus/drh/spip19/portailtest
      et affichage d’une page sans squelette avec les données du site spip racine

      Par contre mon fichier mes_options.php est comme vous le donnez.

      Merci de votre aide

    • Bien... laissez :

      RewriteRule ^mon_site/(.*) $1 [QSA,L]

      à la place des lignes deux lignes précédentes... Ca devrait tout fonctionner, non ?

      C’est bizarre que ces deux lignes ne fonctionnent pas d’ailleurs... Elles étaient bien à la place de RewriteRule ^mon_site/(.*) $1 [QSA,L] ?

      MM.

    • Bonjour,

      A ce propos, comment fait-on pour ne pas avoir à préciser le / en fin d’url ?

      Merci.

    • Bonjour,

      j’ai dans mon .htaccess :
      ################ REGLAGES PERSONNALISES ######################
      # Inscrivez ci-dessous vos reglages supplementaires
      RewriteRule ^portailtest/(.*) $1 [QSA,L]

      c’est tout, et la page d’accueil de mon site s’affiche avec le squelette du site racine et les autres pages avec les squelettes de SITES/portailtest/squelettes
      comme précisé par mon post précédent

      merci d’avance

    • J’avoue que je ne sais pas d’où cela vient...
      A moins qu’il n’y ait simplement pas de sommaire.html dans SITES/portailtest/squelettes ...

      Ca le fait même en mettant /spip.php ?page=sommaire ?

      Bonne recherche ;)

      MM.

    • Et bien, en remerciant OLab, on obtient des lignes comme cela (dans le .htaccess) :

      RewriteRule ^mon_site$ mon_site/ [R]
      RewriteRule ^mon_site/(.*) $1 [QSA,L]

      MM.

    Répondre à ce message

  • 3

    Ce tutoriel est surement bien fait, mais ca fait 1 heure que je lis et relis et je n’y comprend rien, pourtant, je suis développeur depuis 15 ans. Ca prend vraiment la tête.

    Je pense que c’est un peu confus et fouilli (mélange de plusieurs cas ...)
    On fini par s’y perdre avec les 2 cas (mon_site, mes_spips ...)

    Si SPIP était bien fait dans sa version 1.9, le multi-sites devrait fonctionner tout seul, sans rien avoir avoir à bidouiiler encore !

    Un truc qui est encore réservé aux bidouilleurs fous. J’ai autre chose à faire qu’à perdre du temps à chercher.

    J’attend un tutoriel mieux développé, qui explique par exemple ce qu’est le mod_rewrite, qui prend les 2 cas l’un après l’autre en expliquant à chaque fois, avec une doc bien structurée et mettant en évidence ce qui est important.
    Une vraie doc quoi, qui servira à tout le monde, les bons et les moins bons en informatique.

    Merci d’avance.

    • Quand je dis « si SPIP était bien fait », je veux dire par là qu’il faudrait dans l’administration pouvoir demander la création d’un site, et SPIP dans le lancement de l’administration dans /ecrire, devrait demander quel site voulez-vous administrer et nous montrer la liste ... (ca parait tellement évident)

      Quand au mod_rewrite, comment savoir si notre hebergeur l’a accepté. Je ne l’ai pas vu avec phpinfo() ;

      Dans le tuto il est écrit :
      Par exemple, mettre dans ce fichier :

      * $type_urls = ’propres’ ;

      Donnera par défaut à tous les sites ce type d’url... Mais chaque site peut le changer dans son propre /mon_site/mes_option.php

      C’est pas très clair, pourquoi mettre ’propres’ ...

      De plus, comment spécifier une base de données distincte par site. Une base pour tous les sites dans notre intranet de sociétés qui comprend de nombreux sites SPIP, ca me parait dangereux pour la sécurité, les sauvegardes et restaurations. Par contre pour des sites perso, c’est plus souple, les Hébergeurs n’autorisent souvent qu’une base de données Mysql ; plus de bases, c’est pas le même prix.

      Merci d’avance.

    • Quand on a du temps à perdre, évidement on trouve tout sur internet ;
      j’ai trouvé pour MOD_REWRITE
      un site sur le mod-rewrite : http://www.webmaster-hub.com/publication/article5.html

      La meilleure manière de s’assurer que le module mod_rewrite est chargé est encore de consulter le phpinfo. La mention de mod_rewrite dans la section Apache/Loaded Modules reste la meilleure garantie.

      Ce serait bien si c’était dans le tutoriel, ça éviterait de passer du temps à chercher

      Cordialement

    • Peut-être souhaitez-vous développer un plug-in à SPIP pour qu’il gère comme vous dites le multi-site, ce serait intéressant ?

      Ce tutorial est un retour d’expérience écrit de mon mieux. Je suis désolé de votre aventure avec l’url rewriting d’Apache, qui permet à SPIP d’utiliser des adresses d’URL différentes de spip.php ?article8 . Par exemple, lorsque l’on met dans mes_options.php la ligne $type_urls = ’propres’ ; , Spip utilisera des adresse plus jolies dans la barre comme : http://mon_serveur.org/titre_de_mon_article ou http://mon_serveur.org/-titre_de_ma rubrique- . Seulement, il faut effectivement qu’Apache soit configuré avec le mod_rewrite qui permet cela, mais la plupart des hébergeurs fournissent cette fonctionnalité.

      Lorsque vous suivez le tutorial, SPIP va vous proposer pour chaque site une adresse de base de donnée, par conséquent, ils ne sont pas forcément gérés sur la même base. Si vous voulez garder le préfixe par défaut (spip_) pour le nom des tables mysql, remplacez $cookie_prefix = $table_prefix = $r[1] ; par $cookie_prefix = $r[1] ; Il faut avoir alors des bases de données différentes pour chaque site.

      Cordialement,
      MM.

    Répondre à ce message

  • 1

    Salut,

    Super contrib, très attendue.
    Dans la liste des avantages, il y a aussi le fait d’économiser de la place disque en ne mettant qu’une install de SPIP : quelques Mo gagnés, c’est toujours bon à prendre.

    Perso, j’ai rencontré plusieurs problèmes (dont le fameux « Erreur 302 Found », des problèmes de CACHE), à chaque fois ces problèmes ont été résolus par une reinstall propre et complète.

    Il me reste un problème : l’appel de http://mondomaine/monsite/ecrire me ramène toujours sur http://mondomaine/ecrire avec la base de données liée au site écrire (le site de la racine).
    Du coup, monsite est considéré comme non configuré (site en travaux).

    Pourtant, mes maigres connaissances en php me permettent de m’assurer que le passage dans la boucle de mes_options se fait.
    J’ai dû rater quelque chose mais quoi ?

    Précisions, je suis sur un mutualisé OVH et je travaille avec Spip 1.9 officielle.

    A+

    Raphaël

    • Bon, je me réponds à moi-même. J’ai eu une idée 5 minutes après avoir écrit ce forum. Il m’a suffit de taper l’URL
      http://mondomaine/monsite/ecrire/?exec=install
      et j’ai pu tout configurer.

      Du coup, tout marche.

      A+

      Raphaël

    Répondre à ce message

  • 4

    Bonjour,
    j’ai testé cette contrib, tout marche bien pour la création des sites, installation, espace privé ... mais par contre la redirection vers dossier squelette de chaque site ne s’effectue pas, j’ai bien suivi le tutoriel avec un version de Spip 1.9 téléchargé sur Spip.net et pas une version de developppement du trac , est ce que ça peut venir de là ? pour l’hébergement test c’est chez OVH mutualisé , est ce leur config d’apache ???

    pour la hierarche je suis dans le cas d’un sous dossier appelé /spip situé au premier niveau de mon espace web. mes sites sont bien dans un dossier appelé /SITES/

    bref je patine un peut si quelqu’un peut m’aider ... ou me donner une ’tite piste ...merci d’avance

    • As tu bien mis la ligne pour le dossier_squelette dans /ecrire/mes_options.php ?

                      spip_initialisation_parametree($e, $e) ;
                      $GLOBALS['dossier_squelettes'] = $e.'squelettes';
                      if (is_readable($e .= 'mes_options.php')) include($e);

      Chaleureusement, MM.

      PS : un article est en cours de création pour la doc de spip.net.
      Ca avance !

    • Si tu es avec la version 1.9.0 (pas une version issue de trac), tu peux essayer cela (pour utiliser les bons logo et mon_site/plugins ...
      Mais pour ton dossier_squelette, je ne sais pas...

              if (is_dir($f = _DIR_RACINE . 'SITES/' . $r[1]. '/')) {
                      $cookie_prefix = $table_prefix = $r[1];
                      define('_SPIP_PATH', 'SITES/' . $table_prefix  . '/:./:dist/:formulaires/:ecrire/');
                      define('_DIR_IMG', $f.'IMG/');
                      define('_DIR_DOC', _DIR_IMG);
      				define('_DIR_LOGOS',  _DIR_IMG);
      				
                      define('_DIR_CACHE', $f.'CACHE/');
      				define('_DIR_PLUGINS', $dir1 . "plugins/");
      				
                      define('_DIR_SESSIONS', $f.'data/');
                      define('_DIR_TRANSFERT', $f.'upload');
      				
                      define('_FILE_CONNECT_INS', $f.'inc_connect');
      
      				$GLOBALS['dossier_squelettes'] = $f.'squelettes';
      				
                      if (is_readable($f .= 'mes_options.php')) include($f);
              }

      MM.

    • Bon ça marche après avoir recommencé toute la procédure d’instal depuis le début, le dossier squelette fonctionne pour chaque sites, correctement.

      un seul petit problème subsite :
      je n’arrive pas a charger une page spécifique qui fonctionnais sous 1.8.3 avec les couple php3/html et qui me servais de diaporama.

      je l’appelle par un lien de type http://mon_serveur.com/mon_site/spip.php?diaporama

      la page diaporama.html est bien présente dans le dossier squelette mais ça me charge la page article ...

      une idée ???

    • Essaies plutôt http://mon_serveur.com/mon_site/spip.php?page=diaporama

      MM.

    Répondre à ce message

  • 4

    Excellent !!

    Mais :( , j’ai deux petits soucis :

    -  le logo site0 de http://mon_serveur.org/mon_site/ n’est pas physiquement dans SITES/mon_site/IMG mais dans http://mon_serveur.org/IMG ...

    -  et http://mon_serveur.org/mon_site/ fonctionne mais http://mon_serveur.org/mon_site (sans le slash final) ne fonctionne pas, on tombe sur ’Site en travaux...’

    Si quelqu’un a une idée.

    Merci

    • Certains soucis ont été corrigés par les développeurs sur svn (r6840) et (r6841). Ces changements sont aussi expliqués sur le ticket 186.

      Ces modifications apportent :
      -  l’utilisation des logos correctement pour chaque site,
      -  le dossier /plugins peut être dans mon_site/plugins
      -  le dossier /formulaire peut être dans mon_site/squelettes/formulaire
      -  le dossier /ecrire/balise peut être dans mon_site/squelettes/balise

      -  le fichier /ecrire/mes_options.php est simplifié :

      if ( preg_match(',/([a-zA-Z0-9_-]*)[/?],',$_SERVER['REQUEST_URI'],$r)) {
      	if (is_dir($e = _DIR_RACINE . 'SITES/' . $r[1]. '/')) {
      		$cookie_prefix = $table_prefix = $r[1];
      		define('_SPIP_PATH', 
      		       _DIR_RACINE . 'SITES/' . $table_prefix  . '/:' .
      		       _DIR_RACINE .'dist/:' .
      		       _DIR_RACINE .'formulaires/:' .
      		       _DIR_RESTREINT);
      		spip_initialisation_parametree($e, $e) ;
      		if (is_readable($e .= 'mes_options.php')) include($e);
      	}
       }

      Bien évidemment, il faut du coup télécharger une version svn sur Trac pour l’utiliser tout de suite (à vos risques) ! Ou attendre un SPIP 1.9.1...

      MM.

    • Corrections de la réponse précédente :
      -  le dossier /formulaire doit être dans mon_site/formulaire (je suppose que c’est identique pour ecrire/balise dans mon_site/balise)
      -  ecrire/mes_options.php doit encore posséder après include($e) la ligne

      $GLOBALS['dossier_squelettes'] = $e.'squelettes';

      MM.

    • Les deux versions citées corrigent en effet le problème du logo site et certainement d’autres.

      Il faut comme indiquer ajouter le dossier formulaires dans SITES/mon_site pour que le systeme fonctionne.

      Mais je n’arrive toujours pas à résoudre le probleme de l’acces au site avec ou sans le slash a la fin de l’URL :
      -  http://mon_serveur.org/mon_site/ fonctionne
      -  http://mon_serveur.org/mon_site (sans le slash final) ne fonctionne pas, on tombe sur ’Site en travaux, Ce site n’est pas encore configuré. Revenez plus tard....’

      Cela vient-il de spip ou plutôt d’un config serveur via htaccess ?
      Merci

    • J’ai résolu le problème avec une solution peu pratique qui constiste à créer un répertoire vide mon_site au même niveau que le spip original , de ce fait le slash final est ajouté automatiquement.

      Ceci contraint de créer un repertoire pour chaque site. Peut-être existe-t-il une solution avec rewrite mais je ne sais pas faire.

      Je comprend qu’en fait sans le slash, l’URL est interprétée comme une partie du site original donc cela ne fonctionne pas.

    Répondre à ce message

  • Il faut préciser que la procédure ici décrite fonctionne très bien (bravo !) pour des sites mutualisés en sous-répertoire (sur un compte d’hébergé et non d’hébergeur comme présisé en début d’article), du type http://www.domaine.org/spip-mutuel/

    Il resterait à compléter la procédure pour des sites mutualisés (toujours dans un compte d’hébergé, mais disposant de la possibilité de créer et gérer des sous-domaines, voire d’héberger plusieurs domaines) :

    Et dans un autre article, décrire la procédure de mutualisation pour les hébergeurs. Si des volontaires de l’apinc.org ou de lautre.net ayant un accès « root » voulaient se pointer, ce serait chouette...

    AV

    Répondre à ce message

  • Bonsoir,

    Je suis dans la situation suivante : sur un serveur où tournent des dizaines de SPIP, j’aimerais proposer aux utilisateurs de « se brancher » sur une version centralisée de SPIP qui sera mise à jour à chaque release de version stable, histoire de faciliter la vie à tout le monde et d’éviter d’avoir des vieilles versions éventuellement pas très sûre qui tournent sur le serveur. Comment fais-je ? L’idée serait de proposer une manière très simple de faire, du genre, idéalement : « vous décompresser telle archive dans le répertoire où vous voulez un SPIP et ça marche toutr seul ».

    Ici, tout fonctionne sur un seul domaine, mais dans le cas qui me préoccupe, j’ai des dizaines de domaines différents, sur des comptes différents, etc. C’est possible ?

    Merci

    Répondre à ce message

  • En fait il y avait quelques oublis dans le ticket 186 à partir duquel tu es parti, ce qui fait que certains répertoires ne seront pas mutualisés (les plugins comme dit ci-dessous, mais aussi les logos). La version 6840 corrige ça et fournit une interface plus commode (voir ma derniere intervention sur le ticket #186 ).

    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