Gérer un SPIP mutualisé avec SSH et SVN

, par Maïeul

Pourquoi installer trois fois SPIP lorsqu’on a trois sites chez le même hébergeur ? Pourquoi ne pas garder un seul noyau qui servirait aux trois sites ? Voici un petit tutorial sur :

  • utiliser ssh et svn chez un hébergeur
  • mutualiser un site SPIP.

Ce tutoriel explique comment j’ai pratiqué chez l’Autre.net pour avoir un site mutualisé.

Définition

SSH est un protocole qui permet d’exécuter des lignes de commandes sur un ordinateur distant, via internet, et ce de manière sécurisé.

SVN est un système de gestion de versions de code sources. C’est celui utilisé par SPIP.

Un SPIP mutualisé, c’est la possibilité d’avoir une seul fois le code de SPIP pour plusieurs sites chez le même hébergeur.

Ce qu’on cherche à faire

  • Avoir un SPIP mutualisé.
  • Pouvoir facilement le mettre à jour.

Interêt

La mutualisation permet un gain de place et de temps lors des mises à jour de SPIP : un seul SPIP à mettre à jour.

L’accès SSH évite d’avoir à passer par FTP depuis votre ordinateur, et donc de subir la lenteur des connexions sortantes proposés en ADSL.

Préalable

Il est nécéssaire de pouvoir faire du SSH. Sur mac / linux, il faut utiliser le terminal ou l’invite de commande. Sous Windows il faut un logiciel spécifique. Voir le tutoriel de l’Autre.net.

Tout les hébergeurs ne proposent pas d’accès SSH, car cela pose des problèmes en termes de sécurité. L’Autre.net en plus d’être un Alter-Hébergeur le permet. Tant mieux ! [1]

Tout les hébergeurs proposant SSH ne proposent pas forcément SVN. Si c’est le cas du votre, négociez avec lui. Et si vous échouez, ce tutoriel vous sera inutile.

J’ai trois site :

  • bidule.tld
  • truc.tld
  • machin.tld

Il est nécessaire de régler les DNS pour qu’ils pointent sur le même hébergeur, puis chez l’hébergeur, il faut que chaque domaine pointent vers le même répertoire.

Voir avec l’hébergeur pour cela.

J’imagine ici que mes trois domaines sont réglés pour accéder au répertoire spip_mutu.

Se connecter via SSH

Dans le terminal [2], taper [3] :

% ssh login@adresse

Le login et l’adresse ssh sont fournis par l’hébergeur.

A l’invitation, taper votre mot de pass SSH.

Désormais, tout ce que vous frapperez sera exécuté sur le serveur de votre hébergeur. Donc attention !

Récuperer le code de SPIP

Tout d’abord, se déplacer dans le dossier spip_mutu :

% cd spip_mutu

Il existe sur le serveur SVN de SPIP un dossier tags qui contient des « instanés » des version de SPIP. En gros, il contient les versions distribuées sur SPIP.net.

Récuperons cela par SVN. Ici la version 2.1.2

% svn co svn://trac.rezo.net/spip/tags/spip-2.1.2 .

 ! Attention, ne pas oublier le point final. Il permet que le contenu du dossier spip-2.1.2 soit mis directement dans le dossier courant.

Le jour où SPIP passera en 2.1.3, il suffira de faire

% svn switch svn://trac.rezo.net/spip/tags/spip-2.1.3

qui basculera seulement les fichiers modifiés entre la 2.1.2 et la 2.1.3

Récuperer le gestionaire de mutualisation

Il existe un pseudo-plugin SPIP qui permet de gérer un SPIP mutualisé. Récuperons le

% svn co svn://zone.spip.org/spip-zone/_plugins_/mutualisation

Il faut ensuite créer un dossier sites, dans lequel chaque site aura un dossier spécifique. Pour cela :

% mkdir sites

Installer les plugins

La plupart des plugins SPIP sont dévellopés sur la SPIP-Zone, en SVN. Trouvez ici la liste : http://zone.spip.org/trac/spip-zone/browser/_plugins_/, et les squelettes sont par là http://zone.spip.org/trac/spip-zone/browser/_squelettes_

Créons notre dossier plugins, puis allons y.

% mkdir plugins
% cd plugins

Maintenant récuperons les plugins qui nous intéresse

% svn co svn://zone.spip.org/spip-zone/_plugins_/dossierduplugin

ou dossierduplugin est à remplacer à chaque fois par le dossier du plugin qui nous intéresse.

Lorsqu’on voudra mettre à jour un plugin, on fera

%svn up dossierduplugin

Configurer la mutalisation

Tout d’abord retournons à la racine de notre site

% cd ..

Puis copions le fichier mes_options.php.txt dans le dossier config de SPIP, en le renommant.

% cp mutualisation/mes_options.php.txt config/mes_options.php

éditons avec pico le fichier copié

% pico config/mes_options.php

.

Voici le fichier tel que livré aujourd’hui :

par mesure de sécurité, on veut qu’à chaque nouveau site les logins/mdp mysql soient demandés. On veut également que le webmestre crée à la main le dossier du site (voir plus bas).

Donc il faut supprimer les lignes suivantes :

et également remplacer les lignes suivantes

			'creer_site' => true,        // Creer ou non le site s'il n'existe pas (defaut: false) 
			'creer_base' => true,        // Creer ou non la base de donnee si elle n'existe pas (false) 

par

			'creer_site' => false,        // Creer ou non le site s'il n'existe pas (defaut: false) 
			'creer_base' => false,        // Creer ou non la base de donnee si elle n'existe pas (false) 

Et puis remplacer « ecureuil » par un autre mot de passe.

Créer les dossier des sites

Chaque site aura un dossier à lui dans le dossier sites. Ce dossier sera l’url du site, sans le http://www. Comme nous voulons les créez nous même, et non pas confier la tâche à SPIP, il faut faire cela, dans notre cas :

% mkdir sites/bidule.tld
% mkdir sites/truc.tld
% mkdir sites/machin.tld

Chacun de ces sous dossiers contiendra les dossiers tmp IMG, local,config spécifique au site.

Renommer le fichier .htacesss

Pour utiliser la réécriture d’URL et les URLs propres de SPIP, il faut faire :

% mv htaccesss.txt .htaccess

afin de renommer le fichier htaccess.tex en fichier .htaccess.

 ! Attention : la réécriture d’url via .htaccess ne fonction que sur les serveurs Apache. C’est pourquoi, si vous n’êtes pas sous Apache, dans le fichier mes_options.php cités plus haut, changer la ligne suivante

'url_img_courtes'=>true,

par

'url_img_courtes'=>false,

Se déconnecter du SSH

Ca y est, tout les fichiers sont biens en place chez l’hébergeur. Pour quitter l’accés SSH :

% logout

Configurer chaque site

Il suffit désormais de vous rendre sur http://machin.tld pour configurer le site machin.tld, comme vous le feriez à l’install de n’importe quel site SPIP. Il faudra simplement donner le mot de passe que vous avez réglé dans le fichier mes_options.php

Notes

[1Toutefois il est nécessaire d’activer l’accès SSH depuis le panneau de configuration de votre compte sur l’Autre, et ce pour une durée de quatre heures.

[2pour les windowsien, voir le tutoriel de l’Autre.net.

[3le % représente l’invite de commande.