Humus numericus

Aller au contenu | Aller au menu | Aller à la recherche

R, Spip et autres

Docs informatique

Fil des billets

mercredi 4 juillet 2007

Installation d'un Spip mutualisé en sous-domaine

J'ai eu l'occasion de travailler sur la configuration d'un Spip pour le mutualiser en sous-domaine (et non en sous-répertoire). Comme c'était pas tout à fait de la tarte, je mets mes notes de travail ici, même si tout ça n'a pas forcément été testé à fond les ballons.

Configuration

Un spip situé sur un serveur nommé dd.nozav.org et accessible à l'adresse http://dd.nozav.org/spip/.

Deux autres sites Spip que l'on veut atteindre en sous-domaines via http://spip1.nozav.org/ et http://spip2.nozav.org/.

On a donc trois sites hébergés sur 3 bases différentes sur le même serveur MySql. On peut aussi apparemment n'utiliser qu'une base de données MySql en modifiant les préfixes des tables.

Le tout est situé dans le répertoire /home/julien/www/spip.

Installation du site principal

  • Décompression de Spip 1.9.2b dans /home/julien/www/spip.
  • Installation du site http://dd.nozav.org/spip de manière classique (j'ai l'impression que cette étape est obligatoire, même si le site en question reste vide, à vérifier).
  • Création des répertoires /home/julien/www/spip/sites/nozav.org/spip1 et /home/julien/www/spip/sites/nozav.org/spip2, plus les sous-répertoires IMG, temp, config et local pour chacun d'entre eux.

Attention : la convention de nommage est importante, pour un site dont l'url serait toto.domaine.fr, on doit avoir un répertoire sites/domaine.fr/toto.

Configuration d'Apache

On crée un site dans /etc/apache2/sites-enabled/ avec le contenu suivant :

<VirtualHost *>
       ServerName spip1.nozav.org
       ServerAlias spip2.nozav.org

       # Redirection vers le SPIP noyau
        DocumentRoot "/home/julien/www/spip"
        <Directory "/home/julien/www/spip/">
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>

        RewriteEngine On

        RewriteCond %{SERVER_NAME} (www\.)?([^.]+)\.nozav\.org$
        RewriteCond /home/julien/www/spip/sites/nozav.org/%2/%{REQUEST_FILENAME} -f [OR]
        RewriteCond /home/julien/www/spip/sites/nozav.org/%2/%{REQUEST_FILENAME} -d
        RewriteRule (.*) /home/julien/www/spip/sites/nozav.org/%2/$1 [QSA,L]

        RewriteCond %{SERVER_NAME} (www\.)?([^.]+)\.nozav\.org$
        RewriteRule (.*) /home/julien/www/spip/$1 [QSA,L]

</VirtualHost>

Configuration de Spip

Création du fichier spip/config/mes_options.php :

<?php
if ( preg_match(',(.*)\.nozav\.org/?,',$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_FILENAME'],$r)) {

  if (is_dir($e = _DIR_RACINE . 'sites/nozav.org/' . $r[1]. '/')) {
  
  $cookie_prefix = $r[1];
  $table_prefix='spip';
           
  define('_SPIP_PATH',
	 $e . ':' .
	 _DIR_RACINE .':' .
	 _DIR_RACINE .'dist/:' .
	 _DIR_RESTREINT);
  
  spip_initialisation(
		      ($e . _NOM_PERMANENTS_INACCESSIBLES),
		      ($e . _NOM_PERMANENTS_ACCESSIBLES),
		      ($e . _NOM_TEMPORAIRES_INACCESSIBLES),
		      ($e . _NOM_TEMPORAIRES_ACCESSIBLES)
		      );
  
  $GLOBALS['dossier_squelettes'] = $e.'squelettes';
  
  if (is_readable($f = $e._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php')) include($f);
  }
}
?>

Installation des sous-sites

Ensuite on se rend dans http://spip1.nozav.org/ecrire et on procède à une installation classique. On peut ensuite faire une migration d'un site existant en copiant les répertoires config, squelettes, tmp, local, IMG ainsi que d'éventuelles ressources statiques et en effectuant une restauration de base.

Idem pour http://spip2.nozav.org/

Remarques

  • Les plugins sont également mutualisés, c'est à dire qu'ils sont installés pour l'ensemble des sous-sites. Mais chaque site peut choisir de les activer ou non.
  • Il est possible d'utiliser des types d'urls différentes par sous sites en mettant le $type_urls que l'on souahite dans le fichier mes_options.php du sous-site.
  • Pour les migrations de site vers un mutualisé il y a apparemment des subtilités concernant les images et documents joints. Voir la remarque Note sur les sauvegardes et les restaurations sur la page de la doc qui va bien.

mercredi 17 mai 2006

Traduction française du tutoriel sur Ajax et Rails

Ça y est, je viens de terminer la traduction en français du tutoriel initialement rédigé en anglais et désormais baptisé Comment paginer, trier et filtrer un tableau avec Ajax et Rails.

Ça fait bizarre de traduire un texte qu'on a écrit soi-même. En fait, y'a plus passionnant à faire, je dirais.

Le document est disponible en ligne et en version PDF (malheureusement pas super propre).

Voilà les liens pour voir tout ça :

jeudi 11 mai 2006

Tutoriel en anglais sur Ajax et Ruby on Rails

Ayé, je viens de mettre en ligne mon premier tutoriel en anglais sur dev.nozav.org. Son doux nom est How to paginate, sort and search a table with Ajax and Rails. En gros, ça explique comment afficher un tableau et implémenter des fonctions de pagination, tri par colonne et recherche "en temps réel" à l'aide d'Ajax, et d'avoir donc une interface web plus réactive qu'avec des pages "classiques".

Le tout est expliqué sous la forme d'une application Ruby on Rails dont l'installation et configuration est brièvement décrite.

Je compte faire une traduction en français dans les jours (semaines ?) qui viennent...

vendredi 28 avril 2006

Ouverture de dev.nozav.org

Ça y est, je viens enfin de finaliser et de mettre en ligne le site que je projette depuis un moment et qui devrait accueillir différents documents, scripts, projets... en fonction de mon (in)activité du moment. Le site en question est hébergé chez hcoop, hébergeur coopératif étatsunien, et est généré par Emacs et son mode de publication Muse mode. Après avois testé différentes solutions sous formes de wikis/blogs/CMS, en Rails/PHP/Ruby, je suis finalement retourné à ce bon vieil Emacs et à des pages statiques générées à partir d'une syntaxe de type Wiki vers différents formats possibles (HTML, LaTeX, PDF, Docbook...)

L'adresse du site :

La page d'accueil par défaut est en anglais, mais y'a une version française dans un coin. J'y ai déjà rapatrié mes trois documents sur Subversion, Ion3 et XML, l'ancienne page de documentation devrait être désactivée d'ici peu...

vendredi 5 août 2005

Introduction à Ion

Ion est un gestionnaire de fenêtres très dépouillé et orienté clavier, très efficace d'utilisation. Les fenêtres n'ont pas de décorations et s'organisent en cadres munis d'onglets qui recouvrent toute la surface de l'écran sans se recouvrir. Ceci permet une organisation très claire de l'espace qui est utilisé au maximum.

Une des forces de Ion est de supporter également les "bureaux flottants", plus proches de la manière dont fonctionnent les gestionnaires de fenêtres traditionnels, mais permettant quand même un fonctionnement à base d'onglets. Ceci permet d'utiliser des logiciels du type Gimp de manière aussi confortable que sous n'importe que autre WM.

Je me suis mis à Ion il y a environ deux mois, et j'y ai vraiment pris goût, au point que je ne suis plus retourné une seule fois sous WindowMaker. Je me suis donc dit qu'il pourrait être intéressant de rédiger une espèce d'introduction pour une personne désirant découvrir Ion de manière un peu plus conviviale que la simple page de manuel. Ce document contient la définition des concepts de base, une sorte de "visite guidée" ainsi que deux ou trois astuces ou fonctionnalités qui m'ont semblé intéressantes.

mardi 2 août 2005

Introduction à Subversion

Toujours dans la catégorie "on ressort les docs du tiroir", voici une introduction au logiciel de contrôle de version Subversion, souvent considéré comme le successeur de CVS. Le document est assez direct, et présente à la fois les concepts de base ainsi que les principales fonctionnalités via la ligne de commande. Il peut servir autant de support de formation que d'aide-mémoire, et est disponible en HTML, PDF et source LaTeX.

Présentation de XML

Histoire de rentabiliser le temps investi dans la rédaction de documents pour le boulot, je viens de mettre en ligne un diaporama de présentation générale de XML, ses origines, ses objectifs, sa syntaxe, etc.

Le document est accessible au format PDF, tout comme le code source LaTeX, qui utilise l'excellent package Beamer.