Sommaire
Présentation
Il s'agit d'un CMS (Content Management System, système de gestion de contenu) libre qui a été développé pour http://uzine.net et http://monde-diplomatique.fr par une bande de militants du web indépendant.
Le principe
Spip permet de séparer le fond et la forme, c'est à dire le contenu et le contenant :
- C'est le webmestre, qui a des compétences en conception de sites web (HTML + CSS + boucles SPIP), qui met en place le squelette (une seule page html par besoin : sommaire.html, rubrique.html, article.html, mot.html, plan.html... - notez qu'un site avec une seule page rubrique.html peut être mis en place pour les sites les plus simples !)
- Ce sont ceux qui détiennent l'information qui alimentent le site web, simplement en remplissant des formulaires web.
Au terme de la conception du site, le webmestre sera donc amené à former les futurs rédacteurs à l'alimentation de leur site web, sans oublier un ou plusieurs "administrateurs" qui seront les responsables de la ligne éditoriale du site. En effet, les rédacteurs proposent les articles à la publication, tandis que les administrateurs peuvent aussi bien rédiger de nouveaux articles que publier (ou refuser) ceux qui sont proposés par un rédacteur.
En savoir plus : Principe général sur spip.net
Boucles SPIP ?
SPIP est un framework qui permet aux webmestre de s'affranchir complètement du code php/mysql.
Pour découvrir : suivez le tutoriel (très simple : 2h suffisent)
Pour s'en servir : la doc officielle est facile à trouver sur http://spip.net/@ (retenez cette adresse, avec le @)
Pour aller plus loin : on peut également utiliser des plugins déjà développés ou développer ses propres plugins pour spip. Une adresse à retenir : http://spip-contrib.net
Note : en tant que framework, SPIP apporte de nombreuses fonctionnalités assez puissantes (gestion du cache, possibilité de surcharger toutes les fonctions, boucles, balises) aussi bien pour ce qui concerne la conception web (balises, filtres, modèles, formulaires...) que le développement de plugins - mais là ça devient plus compliqué : cf http://doc.spip.org
Installation
1ère installation
3 possibilités :
La plus simple : installer subversion aptitude install subversion et récupérer soit la version stable
svn co svn://trac.rezo.net/spip/branches/spip-1.9.2 /chemin/sur/votre/serveur
soit la version de développement (si vous savez ce que vous faites) : svn co svn://trac.rezo.net/spip/spip /chemin/sur/votre/serveur
La presque plus simple : récupérez le fichier spip_loader.php sur http://spip.net/fr_download sur votre serveur et visitez cette page à travers votre serveur web
la mauvaise : récupérer la dernière version stable zippée sur http://spip.net/fr_download et la dézipper sur votre serveur (ne vous étonnez pas si la mise à jour ne se fait pas facilement par la suite)
Dans tous les cas : rendez vous sur http://racine.de.votre.site/ecrire et suivez les instructions pas à pas (à commencer par un chmod 777 IMG local config tmp - je laisse le soin à un expert en sécurité de corriger / mieux expliquer la gestion des utilisateurs et droits pour sécuriser un site spip)
Mise à jour
Selon la méthode choisie pour installer, vous pouvez (respectivement au § Installation) :
vous rendre dans le répertoire de votre site et taper svn update
relancer http://votre.serveur/spip_loader.php
vous devez pour cela être déclaré "webmestre" de ce site, c'est à dire être l'auteur d'identifiant 1 ou être déclaré explicitement dans le fichier config/mes_options.php :
define('_SPIP_LOADER_UPDATE_AUTEURS', '1:2:7'); // pour spip_loader define ('_ID_WEBMESTRES', '1:2:7'); // pour vous simplifier la maintenance
par exemple pour autoriser les auteurs 1, 2 et 7.
- essayer de vous en sortir tout seul si vous avez choisi la 'mauvaise' solution
Plugins recommandés
Chargeur : dans un spip < 1.9.3, permet de télécharger un plugin depuis l'interface privée
Cfg : pour pouvoir configurer certains plugins et écrire des plugins bien propres
Crayons : pour pouvoir modifier du contenu depuis l'espace public (TRES pratique, surtout si on a une mauvaise connection)
Autorité : pour avoir un réglage plus fin des autorisations
Espace restreint : pour restreindre l'accès à certaines zones du site
Couteau suisse : plein de fonctionnalités pratiques voire révolutionnaires (antispam, wikisation d'une rubrique grâce à Crayons...)
etc (n'hésitez pas à remplir !)
Pour installer un plugin, il suffit de le dézipper dans un sous-répertoire du répertoire plugins/ (à créer si vous ne l'avez pas) A partir de ce moment, un bouton apparaît dans le menu Configuration de l'espace privé
A partir de la version 1.9.3, il sera possible de télécharger et activer des plugins directement depuis l'espace privé (il faut utiliser le plugin Chargeur pour ce faire dans la version 1.9.2)
SQLite
SPIP supporte nativement MySQL, mais aussi aujourd'hui PostGreSQL et surtout SQLite. Plus d'infos sur http://www.spip-contrib.net/Portage-de-SPIP-en-SQLite
Mutualisation
Aide de référence : http://www.spip-contrib.net/La-mutualisation-facile
Procédure rapide pour tester sur sa machine
Téléchargement des fichiers
- Création de /var/www/mutualisation/ et récupération de spip svn
sudo svn checkout svn://trac.rezo.net/spip/spip /srv/www/mutualisation/
- Création de /var/www/mutualisation/mutualisation et récupération de zone.spip.org/spip-zone/_plugins_/_test_/mutualisation
sudo svn co svn://zone.spip.org/spip-zone/_plugins_/_test_/mutualisation/ /var/www/mutualisation/mutualisation/
Configuration
Modif de /etc/apache2/sites-available/default : modifier le DocumentRoot par défaut pour le remplacer par DocumentRoot /var/www/mutualisation + relance d'apache
sudo apache2ctl restart
Créer /var/www/mutualisation/config/mes_options.php comme indiqué dans http://www.spip-contrib.net/La-mutualisation-facile (typiquement prendre l'exemple indiqué dans la section "Création automatique d’un utilisateur sur la base de donnée créé automatiquement" en renseignant _INSTALL_USER_DB_ROOT et _INSTALL_PASS_DB_ROOT)
<?php if (!defined("_ECRIRE_INC_VERSION")) return; require _DIR_RACINE.'mutualisation/mutualiser.php'; $site = str_replace('www.', '', $_SERVER['HTTP_HOST']); if ($site != $_SERVER['HTTP_HOST']) { include_spip('inc/headers'); redirige_par_entete('http://'.$site.'/'); } define('_DIR_PLUGINS', _DIR_RACINE . 'sites/' . $site . '/plugins/'); define ('_INSTALL_SERVER_DB', 'mysql'); define ('_INSTALL_HOST_DB', 'localhost'); define ('_INSTALL_USER_DB_ROOT', 'root'); define ('_INSTALL_PASS_DB_ROOT', '******'); define ('_INSTALL_NAME_DB', 'mu_'.prefixe_mutualisation($site)); define ('_INSTALL_TABLE_PREFIX', 'spip'); /* Inutile pour le moment mais ca te servira pour le service d'hébergement avec les utilisateurs / code d'activation stockés en BD define ('_INSTALL_PANEL_HOST_DB', 'localhost'); define ('_INSTALL_PANEL_USER_DB', 'root'); define ('_INSTALL_PANEL_PASS_DB', '******'); define ('_INSTALL_PANEL_NAME_DB', 'mutualisation_spip'); define ('_INSTALL_PANEL_NAME_TABLE', 'utilisateurs'); define ('_INSTALL_PANEL_FIELD_SITE', 'url'); define ('_INSTALL_PANEL_FIELD_PASS', 'password'); define ('_INSTALL_PANEL_FIELD_CODE', 'code'); */ demarrer_site($site, array( 'creer_site' => true, 'creer_base' => true, 'creer_user_base' => true, 'repertoire' => 'sites', /*'code' => 'codeAchanger', 'mail' => 'root+spip@xx.refer.org', 'utiliser_panel' => true */ ) ); ?>
Tests
Pour tester sur sa machine des trucs bidons, éditer /etc/hosts et ajouter des lignes du genre :
127.0.0.1 toto.chezmoi 127.0.0.1 titi.chezmoi 127.0.0.1 tutu.chezmoi
Se rendre sur http://toto.chezmoi, l'installation automatique de spip devrait apparaître. (Mot d'activation par défaut : ecureuil)