Mutualisation de sites (incluant le domaine principal)

Bonsoir,

J'avais réussi la mise en place de sites mutualisés de la forme site1.mondomaine.tld, site2.mondomaine.tld, etc.
en installant SPIP2.0 dans un répertoire www/spip en compagnie du plugin mutualisation.

Je souhaite faire la même chose avec la contrainte supplémentaire que le site (maître?) www.mondomaine.tld fasse partie de la liste des sites mutualisés. J'ai donc procédé de la même façon sauf que j'ai installé SPIP+plugin mutualisation dans le dossier www et non dans un dossier www/spip

Or, il semble que dans ce cas le plugin mutualisation ne s'active pas ???

Quelqu'un a-t-il rencontré ce problème ?

En particulier, le passage ci-dessous du fichier mes_options.php du plugin Mutualisation qui semble correspondre à mon cas de figure me laisse perplexe… Quelqu'un pourrait-il m'expliquer ce qu'il signifie?

/*
   * Inscrire ici le nom du site d'administration du tableau de bord
   * de la mutualisation (ou plusieurs, separes par des virgules)
   * (dans cet exemple, 'scriibe.net' est le top level domain, TLD)
   * pour autoriser tous les sites, ne pas definir la constante ;
   * Si le site maitre n'est pas dans sites/ mais a la racine, mettre ''
   * et ajouter 'mutualisation' dans $dossier_squelettes
   */
  define ('_SITES_ADMIN_MUTUALISATION', 'scriibe.net');

Merci d'avance

eM

Le 26 févr. 09, à 21:33, Ben. a écrit :

essaye en virant cette partie

  $site = str_replace('www.', '', $_SERVER['HTTP_HOST']);
  if ($site != $_SERVER['HTTP_HOST']) {
    include_spip('inc/headers');
    redirige_par_entete('http://'.$site.'/');
  }

J'ai essayé. C'est toujours la page d'installation classique qui apparaît et non la page d'accueil du plugin mutualisation demandant le code d'activation…

eM

Bonjour,

Après réinstallation complète, je parviens à un résultat peu probant mais différent
Dans le dossier www/ de mon hébergeur, j'ai donc installé spip2.0.5+plugin mutualisation

Si je laisse dans le fichier mes_options.php les lignes suivantes

$site = str_replace('www.', '', $_SERVER['HTTP_HOST']);
  if ($site != $_SERVER['HTTP_HOST']) {
    include_spip('inc/headers');
    redirige_par_entete('http://'.$site.'/');
  }

Alors les adresses de type sous-domaines (test.mondomaine.tld) renvoient correctement vers la page d'accueil du plugin mutualisation (celle qui demande le code d'activation) et tout est normal.
MAIS l'adresse principale www.mondomaine.tld renvoie un message d'erreur :
"Redirection de page incorrecte
Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas."

Si j'enlève les lignes suivantes du fichier mes_options.php

/*$site = str_replace('www.', '', $_SERVER['HTTP_HOST']);
  if ($site != $_SERVER['HTTP_HOST']) {
    include_spip('inc/headers');
    redirige_par_entete('http://'.$site.'/');
  }*/

Alors, toutes les adresses (www.mondomaine.tld ou test.mondomaine.tld) renvoient vers la page classique d'installation de SPIP comme si le plugin mutualisation ne s'activait pas…

Je me demande donc d'où vient l'erreur avec le fichier mes_options.php par défaut
a/ est-ce le plugin mutualisation qui ne sait pas gérer l'adresse en www.mondomaine.tld ?
b/ est-ce mon hébergeur qui refuse qu'on tripatouille en redirigeant (réécrivant) cette adresse ?

Merci pour vos lumières éventuelles…

eM

Le 26 févr. 09, à 21:33, Ben. a écrit :

essaye en virant cette partie

  $site = str_replace('www.', '', $_SERVER['HTTP_HOST']);
  if ($site != $_SERVER['HTTP_HOST']) {
    include_spip('inc/headers');
    redirige_par_entete('http://'.$site.'/');
  }

Clinamen poste restante a écrit :

Alors les adresses de type sous-domaines (test.mondomaine.tld) renvoient correctement vers la page d'accueil du plugin mutualisation (celle qui demande le code d'activation) et tout est normal.
MAIS l'adresse principale www.mondomaine.tld renvoie un message d'erreur :

Je ne vois pas du tout la difficulté de ton truc. Je fais ça à chaque fois pourtant. Je te donne ma config locale simplifiée :

APACHE /etc/apache2/sites-available/hamac.magraine.net
--------------

<VirtualHost *>
  ServerName hamac.magraine.net
  ServerAdmin webmaster@localhost
  ServerAlias *.hamac.magraine.net
  
  #DocumentRoot /var/www/
  DocumentRoot /home/marcimat/www/spip/
  <Directory /home/marcimat/www/spip/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>
  
# [...]

</VirtualHost>

SPIP /home/marcimat/www/spip/config/mes_options.php
-----------------
<?php

$mutualisation = true;

if ($mutualisation){

  // mutualisation
  if (!defined("_ECRIRE_INC_VERSION")) return;
  require _DIR_RACINE . 'mutualisation/mutualiser.php';

  $site = $_SERVER['HTTP_HOST'];

  // prefixe des tables
  $GLOBALS['table_prefix'] = 'spip';

  /*
   * avec creation user automatique
   */
!
  define('_INSTALL_SERVER_DB', 'mysql');
  define('_INSTALL_HOST_DB', 'localhost');
  define('_INSTALL_USER_DB_ROOT', 'marcimat');
  define('_INSTALL_PASS_DB_ROOT', '*************');
  define('_INSTALL_TABLE_PREFIX', 'spip');
  define('_INSTALL_NAME_DB', 'su_'.prefixe_mutualisation($site));
  demarrer_site($site,
      array(
      'cookie_prefix' => true,
      'table_prefix' => false,
      'creer_site' => true,
      'creer_base' => true,
      'creer_user_base' => true,
      'mail' => '**********',
      'code' => '*********',
      //'url_img_courtes' => true
      )
  );
  
  $GLOBALS['dossier_squelettes'] .= ':mutualisation';
}

?>

--
MM.

Bonsoir

C'est bien ça. Il suffit, comme vous l'indiquez, de remplacer dans le fichier mes_options fourni par défaut les lignes

<code>
$site = str_replace('www.', '', $_SERVER['HTTP_HOST']);
  if ($site != $_SERVER['HTTP_HOST']) {
    include_spip('inc/headers');
    redirige_par_entete('http://'.$site.'/');
  }
</code>

par

<code>$site = $_SERVER['HTTP_HOST'];</code>

afin que le domaine principal www.modomaine.tld soit traité comme les autres…

Merci pour votre aide

eM

Je ne vois pas du tout la difficulté de ton truc. Je fais ça à chaque fois pourtant. Je te donne ma config locale simplifiée :

[…]

SPIP /home/marcimat/www/spip/config/mes_options.php
-----------------
<?php

$mutualisation = true;

if ($mutualisation){

  // mutualisation
  if (!defined("_ECRIRE_INC_VERSION")) return;
  require _DIR_RACINE . 'mutualisation/mutualiser.php';

  $site = $_SERVER['HTTP_HOST'];

  // prefixe des tables
  $GLOBALS['table_prefix'] = 'spip';

  /*
   * avec creation user automatique
   */
!
  define('_INSTALL_SERVER_DB', 'mysql');
  define('_INSTALL_HOST_DB', 'localhost');
  define('_INSTALL_USER_DB_ROOT', 'marcimat');
  define('_INSTALL_PASS_DB_ROOT', '*************');
  define('_INSTALL_TABLE_PREFIX', 'spip');
  define('_INSTALL_NAME_DB', 'su_'.prefixe_mutualisation($site));
  demarrer_site($site,
      array(
      'cookie_prefix' => true,
      'table_prefix' => false,
      'creer_site' => true,
      'creer_base' => true,
      'creer_user_base' => true,
      'mail' => '**********',
      'code' => '*********',
      //'url_img_courtes' => true
      )
  );
  
  $GLOBALS['dossier_squelettes'] .= ':mutualisation';
}

?>