Multisite et même Login
Auteur Sujet
Post 
Voici la méthode la plus simple pour avoir un site principal et 2 sous-domaines, le tout partageant les messages privés et les utilisateurs.


Tout d'abord, ce dont nous avons besoin.

1 base de données.
1 domaine
2 sous-domaines (dev et demo pour l'exemple)

Ceci n'est que pour l'exemple mais nous allons définir que votre domaine principal se trouve dans le répertoire www de votre serveur et que les sous-domaines sont dans :

sd/dev
sd/demo


Attention, je dis bien que c'est la méthode la plus simple... ce n'est pas la plus propre et ce n'est peut-être pas la plus rapide ou meilleure.

Installons un premier PostNuke dans le www
Une fois les fichiers uploadés, faîtes l'installation comme d'habitude. Utilisez le préfix par défaut (ou comme bon vous semble), pour les besoin de cette explication, nous laisserons le préfix par défaut : pn.

Une fois le domaine principal installé, on peut passer aux sous-domaines. Copiez les fichiers dans chacun des sous-domaines comme vous l'avez fait pour le domaine principal.

Si vous avez un accès SSH, il est très facile de faire un gros zip du contenu du domaine principal et de le dézipper dans les répertoire des sous-domaines. Si vous n'avez pas un accès SSH...... prenez votre mal en patience... et uploadez par ftp.)

Lors de l'installation du premier sous-domaine, choisissez un préfix différent mais tout le reste, c'est la même chose (même base de données, etc.). Pour le dev, on mettra le préfix dev et pour le demo, le préfix demo


Une fois les trois PostNuke installés, il faut maintenant faire en sorte que les 2 sous-domaines partagent les mêmes utilisateurs que le domaine principal.

Pour ce faire, nous allons modifier les fichiers pntables.php (racine des 2 sous-domaines). Pour que les sites partagent les mêmes tables, les tables partagées doivent avoir le même préfix.

Dans les fichiers pntables.php, nous allons modifier les lignes suivantes :

  1. $group_membership = $prefix . '_group_membership'; 
  2.  
  3. $groups = $prefix . '_groups'; 
  4.  
  5. $priv_msgs = $prefix . '_priv_msgs'; 
  6.  
  7. $session_info = $prefix . '_session_info'; 
  8.  
  9. $user_data = $prefix . '_user_data'; 
  10.  
  11. $user_property = $prefix . '_user_property'; 
  12.  
  13. $users = $prefix . '_users'; 


Comme nous voulons que nos sous-domaines utilisent les même table que le domaine principal, il s'agit simplement de fixer le préfix de ces tables afin qu'il soit le même.

  1. $group_membership = 'pn_group_membership'; 
  2.  
  3. $groups = 'pn_groups'; 
  4.  
  5. $priv_msgs = 'pn_priv_msgs'; 
  6.  
  7. $session_info = 'pn_session_info'; 
  8.  
  9. $user_data = 'pn_user_data'; 
  10.  
  11. $user_property = 'pn_user_property'; 
  12.  
  13. $users = 'pn_users'; 


Voilà... Il est inutile de modifier le pntables.php du domaine principal puisque le préfix est déjà le bon.

Une fois fait pour les fichiers pntables.php des deux sous-domaines, les 3 sites partagent les mêmes tables de sessions, d'utilisateurs et de messages privés.

Maintenant, pour que les utilisateurs puissent se logger une fois pour chacun des sites, une petite modification est nécéssaire dans le fichier includes/pnSession.php de tous les sites (domaine et sous-domaines).

Ouvrez le fichier pnSession.php de chacune des installations, et cherchez la partie suivante :

  1. //ini_set('session.cookie_domain', $domain); 


Modifiez cette ligne de la façon suivante :

  1. ini_set('session.cookie_domain', 'VOTREDOMAINE.XXX'); // Sans les sous-domaines. 

Exactement la même chose dans les pnSession.php des autres sites...

Effacez vos cookies (du moins, les cookies concernant votre domaine) et videz la table pn_session_info


Terminé... vous avez maintenant 3 sites distincts... mais partageant les mêmes utilisateurs qui eux n'auront pas besoin de se logger sur chacun et ils retrouveront leurs messages privés peu importe où ils se trouvent...


A titre de Démonstration (vous aurez peut-être besoin d'effacer vos cookies) :

http://www.postnuke-france.org
http://demo.postnuke-france.org
http://dev.postnuke-france.org

Il est possibile de partager d'autres modules comme le forum, les téléchargements, etc... il suffit de modifier le fichier pntable.php du module que l'on veut partager.

Le plus gros inconvénient de cette méthode est qu'une installation complète de PostNuke est nécéssaire pour chacun des sites et sous-sites.

Petit plus, cette explication parle de sous-domaines... mais la même procédure s'applique pour des sous-sites mis dans des sous-répertoires du domaine principal.

www/
www/dev
www/demo


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil