mercredi 1er octobre 2008

Mutualisation SPIP sur OVH (logo)Mutualisation SPIP sur OVH

Avec les hébergement 90 Plan, 240 Plan, 720 Plan…

Un seul code source de SPIP pour plusieurs sites différents sur un hébergement mutualisés (à bas prix) sur OVH.

Problématique : un nom de domaine avec le souhait d’avoir plusieurs site différents partageant le même code de SPIP dans des sous domaines.

Travail préparatoire :

Configuration de l’hébergement

Les fichiers de SPIP mutualisé

Il s’agit de placer sur l’hébergement :

  • SPIP 2
  • Le faux plugin Mutualisation au même niveau que SPIP dans le dossier mutualisation/
  • De créer un dossier sites/ au même niveau que les autres
  • De créer un dossier plugins/ lui aussi à la racine du site SPIP
  • De mettre en place le fichier config/mes_options.php permettant de mutualiser SPIP
PNG - 5.2 ko
Les dossiers du site mutualisé

Arborescence fichiers SPIP mutualisé

Contenu du fichier config/mes_options.php

<?php
require _DIR_RACINE.'mutualisation/mutualiser.php';

$site = str_replace('www.', '', $_SERVER['HTTP_HOST']);
$site = str_replace('ww2.', '', $site);

demarrer_site($site,
        array(
                'creer_site' => true,
                'cookie_prefix' => false,
                'table_prefix' => false,
                'creer_base' => false,
                'creer_user_base' => false,
                'code' => 'ecureuil',
                'mail' => 'mutualisation@pyrat.net'
                )
        );

#$GLOBALS['type_urls'] = 'propres2';
include_spip('inc/vieilles_defs'); // Nécessaire pour les vieux plugins
define('_ID_WEBMESTRES', '1:2:3:4'); // Pour que les premiers auteurs soient aussi des Webmestre (accès à la config de SoyezCreateurs)
?>

Les lignes :

$site = str_replace('www.', '', $_SERVER['HTTP_HOST']);
$site = str_replace('ww2.', '', $site);

permettent de considérer que www.nomdedomaine.tld et ww2.nomdedomaine.tld sont un seul et même site (équivalent à nomdedomaine.tld seul).

Le mail est bien sûr à changer pour que ce soit vous qui soyez prévenus lorsqu’il y a une installation.

Contrairement à un hébergement dédié, nous ne pouvons pas demander au script de mutualisation de créer la base de données.

Du coup, il va falloir passer par le pannel d’administration d’OVH pour créer :

  • l’entrée de nom de domaine en la faisant pointer sur la racine de SPIP mutualisé.
  • la base de données à utiliser : une par site mutualisé [1].

Configuration des domaines dans le pannel OVH

PNG - 13.1 ko
Mise en place de sous domaines

Il s’agit de déclarer un sous domaine par site, en indiquant que chaque sous domaine pointe vers le dossier physique de l’hébergement où se trouve la racine du code source mutualisé de SPIP.

Dans cet exemple, il s’agit de /web/spip/sites

Il faut aussi créer une base de données par site à héberger.

PNG - 26.5 ko
Bases de données SPIP mutualisé

Ne pas oublier de mettre un mot de passe à chaque base : il servira au moment de l’installation des sites. Dans ce tableau, il faut aussi noter le nom de la base et le nom du serveur (ici : mysql5-40).

Installation d’un site mutualisé

En laissant à OVH de propager les modifications (création du sous domaine et création et mot de passe de la base de données), il suffit ensuite de se rendre à l’adresse du sous domaine dans votre navigateur : http://sousdomaine.domaine.tld/

Vous avez alors la mire d’installation de la mutualisation de SPIP.

PNG - 30.8 ko
Installation SPIP mutualisé : code d’activation

Le code est renseigné dans le fichier config/mes_options.php : ici, c’est ecureuil.

La suite est du type assistant avec des questions à cliquer (un seul choix).

Enfin, on arrive dans une installation classique de SPIP où renseigner les informations de connexion à la base et le compte administrateur.

Plugins et squelettes ?

Les plugins vont être communs à tous les sites. Plus exactement, c’est la liste des plugins disponibles qui sera commune. Chaque site sera libre d’activer les plugins qu’il choisira dans cette liste.

Squelettes

Les squelettes sont à placer dans le sous dossier de sites qui a été créé automatiquement par la mutualisation : racineSPIP/sites/nomdedomaine/squelettes/

PNG - 7.8 ko
Arborescence fichiers SPIP mutualisé

S’il y a un mes_options spécifique au site, il doit être placé dans le dossier racineSPIP/sites/nomdedomaine/config/.

Attention, les globales doivent être déclarée explicitement comme telles.

Donc, il ne faut pas écrire : $type_urls = 'propres2'; mais $GLOBALS['type_urls'] = 'propres2';

[1] Il est fortement déconseillé sur OVH de placer plusieurs SPIP sur la même base, OVH limitant, et le nombre de connexions simultanées, et la taille des bases.

Vos témoignages

  • Mutualisation SPIP sur OVH 4 décembre 2008, par Frannie

    Bonjour,

    J’ai un hébergement 90plan chez OVH pour un site en 2 langues, avec 1 nom de domaine différent pour chaque langue. L’idée de la mutualisation se rapproche de ce que je veux réaliser, sauf que je n’ai pas besoin de 2 bases, vu que les articles et rubriques d’un des sites correspondront à ceux de l’autre, dans une autre langue et que spip gère cela. En fait j’aurais besoin d’une astuce qui permette au visiteur anglais de voir le site en anglais sur le nom de domaine anglais et même chose pour le français. Avez-vous un début de réponse pour moi ? Merci beaucoup pour votre aide.

Participez à la vie du site !