Copyright © 2006 Ivan Kurzweg ik-r@wanadoo.fr, 2006
Permission to use, copy, modify, and distribute this documentation for any purpose with or without fee is here by granted, provided that the above copyright notice and this permission notice appear in all copies.
THE DOCUMENTATION IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS DOCUMENTATION INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SPIP est un système de publication pour internet francophone, ce qu’on appelle aussi parfois un CMS, Content Management System. Dans le cas de SPIP, il s’agit d’un ensemble de scripts PHP que l’on installe chez son hébergeur, on configure l’ensemble, on arrive sur une interface de rédaction qui permet de créer des rubriques, des articles et les mettre en ligne de façon simple, avec une interface intuitive et une gestion de raccourcis typographiques. Un workflow de validation d’articles permet à une équipe d’administrateurs de gérer le site et la ligne éditoriale. L’idée générale de SPIP est l’auto publication sur le web pour tous, sans connaissances techniques. SPIP a été créé au départ par les administrateurs d’Uzine qui est un site qui milite pour la liberté d’expression sur le web.
Le créateur originel de SPIP est ARNO pour le site Uzine2. A l’origine, Uzine était un site collaboratif géré manuellement, avec un accès ftp partagé par l’ensemble des auteurs, qui codaient leurs documents html à la main, ce qui n’était pas très pratique et nécessitait des connaissances techniques. ARNO* en 2000 a décidé d’avoir un vrai système pour Uzine2 qui permet de publier des articles sans avoir de code ftp et de connaissances techniques. Ensuite sont arrivés successivement dans l’équipe de développeurs, Antoine (administrateur d’Uzine) et de Fil (journaliste et webmestre du Monde Diplomatique). La première version officielle de SPIP est sortie en juillet 2001, après une gestation d’un an. Depuis, sa popularité est en croissance régulière, c’est à dire que fin 2001 il y avait 2000 téléchargements par mois et en Juillet 2003 entre 10000 et 15000. Régulièrement, l’utilisation de SPIP a augmenté au fil des sorties et grâce au bouche à oreille. (source : Antoine Pitrou, développeur SPIP)
La philosophie Spip est un des sujets de discussions et de négociations. On peut la résumer en quelques points qui ne sont pas exhaustifs. Tout d’abord, une cohérence avec les fonctionnalités existantes. Spip, c’est du « full intégré », ce n’est pas pleins de petites briques qui s’assemblent, c’est quelque chose qui est cohérent et qui doit présenter un visage unique à l’utilisateur. Une interface simple et intuitive par souci d’utilisabilité. Eviter l’explosion combinatoire de complexité qui est le syndrome d’outils comme php-nuke, avec des modules dans tous les sens qui permettent de faire tout et n’importe quoi et qui en contre-partie rendent l’utilisation difficile, avec des fonctions trop spécialisées qui servent à deux-trois personnes. Une implémentation correcte et transparente dans le sens où la technique ne doit pas se rappeler au bon souvenir de l’utilisateur avec par exemple des valeurs de messages d’erreurs qui apparaissent parce qu’on a mis une virgule là où ce n’était pas autorisé. Et le souci de compatibilité qui provient du souci de diffusion sur n’importe qu’elle installation, compatibilité avec des installations que l’on peut trouver sur un grand nombre d’hébergements mutualisés type « PHP3 », mesure de sécurité comme la limitation en écriture de fichiers etc...
SPIP est un Système de Publication pour l’Internet. Il s’agit d’un ensemble de fichiers, installés sur votre compte Web, qui vous permettent de bénéficier d’un certain nombre d’automatismes : gérer un site à plusieurs, mettre en page vos articles sans avoir à taper de HTML, modifier très facilement la structure de votre site... Avec le même logiciel (navigateur) qui sert à visiter un site (Netscape, Microsoft Explorer, Mozilla, Opera...), SPIP permet de fabriquer et de tenir un site à jour, grâce à une interface très simple d’utilisation.
Spip permet de :
gérer un site Web de type magazine, c’est-à-dire composé principalement d’articles et de brèves insérés dans une arborescence de rubriques imbriquées les unes dans les autres.
séparer entièrement, et distribuer entre différentes personnes, trois types de tâches : la composition graphique, la contribution rédactionnelle via proposition d’articles et de brèves, et la gestion éditoriale du site (tâche qui comprend l’organisation des rubriques, la validation des articles proposés...).
dispenser le webmestre et tous les participants à la vie du site d’un certain nombre d’aspects fastidieux de la publication sur le Web, ainsi que de connaissances techniques trop longues à acquérir. L’installation de SPIP se réalise au moyen d’une interface simple et pas à pas, au terme de laquelle vous pouvez commencer à créer vos rubriques et articles
Une liste omplète des caractéristiques de SPIP est disponible à l'adresse http://www.spip.net/fr_article890.html
On distingue donc 3 types d'intervenants pour SPIP :
Les rédacteurs et administrateurs : Ils utilisent une interface Web intuitive rend extrêmement simples la proposition d’articles et de brèves ainsi que la gestion éditoriale du site. De plus, des raccourcis typographiques permettent de mettre en forme un texte sans avoir à utiliser le langage HTML, rendant ainsi la contribution rédactionnelle accessible à tous, et aussi simple que l’écriture d’un e-mail.
Le webmaster : Il gère l’aspect graphique et la navigation qui sont définis par des squelettes HTML (ou « formats types ») définissant chacun une « vue » (par exemple : une vue pour la page d’index, une autre montrant une rubrique et un résumé de son contenu, une troisième pour le détail d’un article, une quatrième pour le détail d’une brève). La façon dont est inséré le contenu rédactionnel du site dans ces pages est défini par un certain nombre de pseudo-tags HTML relativement faciles à maîtriser
Les visiteurs : Un système de cache sur la partie publique du site accélère le site en évitant un grand nombre de requêtes à la base de données, et joue en outre un rôle de garde-fou contre les plantages de la dite base (fréquents sur des serveurs « chargés ») : dans ce cas, le site reste disponible de façon transparente, même si toute modification des contenus est impossible (y compris la contribution aux forums). Un moteur de recherche et d’indexation intégré à SPIP, s’il est activé par le webmestre, permet d’effectuer des recherches sur l’ensemble du contenu public du site.
SPIP tourne sur des architectures de types LAMP. Donc les pré-requis sont bien de disposer des outils suivants :
Un serveur Web (soit en local, soit chez un hébergeur, et il faut alors avoir un accès FTP au serveur)
Le support du langage PHP
Un accès à une base de données MySQL
Vous disposez sur vos machines des composants requis : un serveur apache2, un serveur MySQL, et l'outil PhpMyAdmin, que nous avons installé la semaine dernière. Nous sommes parés pour l'installation !
Dans notre cas, nous avons deux possibilités d'installation :
L'utilisation de paquets Debian qui automatisent l'installation sur le poste (apt-get) (actuellement bogguée !)
L'utilisation des sources SPIP, et qui nous impose la configuration totale de SPIP
Afin de nous mettre dans la situation d'un hébergement classique, nous allons utiliser la 2ème solution.
Récupérer SPIP :
SPIP est disponible en téléchargement par le Web à l’adresse : — http://www.spip.net/spip-dev/DISTRIB
(si nous ne disposons toujours pas de l'Internet, récupérer le fichier sur ma machine)
Dans ce dossier vous trouverez :
— un fichier spip.zip : il s’agit de la version complète de SPIP (actuellement 1.8.3), comprenant toutes les traductions existantes ;
Choisissez la version qui vous intéresse, décompactez l’archive sur votre ordinateur dans votre répertoire HOME, puis transférez le contenu de ce répertoire dans votre répertoire WEB, par défaut /var/www. (utiliser le compte root si nécessaire)
Votre répertoire /var/www/spip doit contenir la structure suivante :
* squelettes .html * nombreux fichiers .php3 * dossier /CACHE (vide) * dossier /IMG * dossier /NAVPICS * dossier /ecrire (le plus important) o nombreux fichiers .php3 o dossier /AIDE o dossier /img_pack o dossier /data (vide) o dossier /lang o dossier /upload (vide)
Vous devez modifier la configuration de votre serveur apache2, de manière à pointer sur le nouveau dossier, en définissant l'alias suivant :
Alias /spip "/usr/www/spip"
< Directory "/usr/www/spip">
AllowOverride None
Options Indexes
Order allow,deny
Allow from all
</Directory>
Après redémarrage de votre serveur apache2 (sudo /etc/init.d/apache2 restart), vous devriez maintenant accédez au site http://localhost/spip/, qui vous indique que le site est en travaux.
Il ne rest e "plus qu'à" configurer SPIP. Pour cela, le dossier ecrire contient des pages de configuration automatique : tapez donc l'URL http://localhost/spip/ecrire/ dans votre navigateur.
Lors de la première connection à cette adresse, une procédure d’installation pas-à-pas démarre. L’interface est très simple, il suffit d’entrer les informations demandées (essentiellement les informations concernant la base de données mySQL). Une fois que c’est terminé, le système vous demande l’identification que vous avez indiquée et vous pouvez commencer à gérer votre site. Par la suite, c’est toujours dans ce dossier « /ecrire » que vous irez travailler, muni de vos codes d’identification.
Lors des premières options de configuration de SPIP, le moteur vérifie que certains répertoires ont les bons droits. Si ce n'est pas le cas pour vous, utilisez la commande suivante pour mettre à jour les droits :
sudo chmod -R 777 /var/www/spip/rep_droits où rep_droits est remplacé par les dossiers à mettre à jour.
Ensuite, SPIP vous demande les informations de connexions à la base MySQL. Dans notre cas, le serveur est local, et vous devez rentrer le compte root et le mot de passe que vous aviez mis la dernière séance. SPIP teste ensuite la connexion à la base, et crée la base qui servira à stocker toutes les informations du site (par défaut SPIP).
Vient ensuite la création du compte Webmaster. Entrez vos informations.
A partir de ce moment, le site est entièrement fonctionnel, et vous disposez de 2 types d'accès :
http://localhost/spip/ : le site tel qu'il sera vu par les internautes
http://localhost/spip/ecrire/ : la partie administration
Pour illustrer les différentes fonctionnalités de SPIP, nous allons développer un site WEB proposant des trucs et astuces que vous découvrez sur LINUX, et plus particulièrement sur UBUNTU. Si nous avons accès à l'Internet, voici un exemple de site SPIP intéressant : http://www.spip-contrib.net/
Vous accédez à l'interface d'administration en utilisant le compte Administrateur que vous avez créé dans la procédure d'installation. Cette interface d'administration vous permet de gérer l'ensemble des fonctionnalités du site.
Elle permet entre autres de modifer le nom du site, de définir les rubriques éditoriales, d'enregistrer les différents acteurs du site, de valider et publier les articles, de gérer les forums, etc ...
Dans notre exemple, vous devez :
Modifier le nom du site
Définir l'organisation éditoriale du site (4 rubriques, dont 2 avec 2 sous rubriques)
Définir la langue principale du site
Activez un cookie d'administration
Ajoutez un rédacteur, qui sera en fait votre voisin
Configurer et gérer la messagerie
Pour tester les points précédents, demandez à votre binôme de prendre l'identité de votre nouvel auteur, et de se connecter à votre site (vous en ferez autant en vous connectant au sien). Echangez :
Des messages avec l'auteur ou l'administrateur
Postez des messages dans le forum interne
Ajoutez vous des penses bêtes
Une rubrique est un espace destiné à accueillir des articles, des brèves... Rien de plus simple : on peut aussi dire dossier (comme sur votre ordinateur : vos documents sont rangés dans des dossiers). Les rubriques peuvent être installées les unes dans les autres, formant ainsi une hiérarchie. Une rubrique est soit à l’intérieur d’une autre rubrique, soit elle n’est rattachée à aucune autre et constitue alors un point d’entrée dans le site (nous parlons alors de tête de rubrique, ou de secteur). L’emboîtement des rubriques les unes dans les autres constitue l’ossature de votre site, puisque c’est autour de cette structure que viendront se greffer les différents éléments de votre site (articles, brèves, sites syndiqués...) (source : documentation SPIP)
Un article se trouve dans une rubrique. C'est un contenu éditorial rédigé par les acteurs du site. Nous verrons dans le paragraphe 3.2 la manière de gérer ces articles. Pour l'instant, disons juste que les articles suivent un processus de publication généralement nommé "Workflow", qui fait passer l'article par plusieurs étapes avant d'être accessible au public.
La description la plus simple pour les brèves, c’est l’anglicisme news. Ce sont des « articles » de moindre importante que les véritables articles, et ils ne sont pas signés. En revanche, il est très simple de leur adjoindre un lien vers un article ou un site Web. Les brèves sont donc idéales pour constituer une revue de presse en ligne (mais rien n’interdit de les détourner de leur usage). Les brèves ont une gestion plus sommaire que les articles :
les brèves ne peuvent être attachées qu’à des secteurs, des têtes de chapitre
les brèves ne sont pas signées, et leur mise en place est très simple : interface réduite, validation d’un clic
Les forums de discussion sont gérés automatiquement par SPIP. Les forums de discussion sont ici directement liés au contenu rédactionnel du site : on peut ouvrir un forum indépendant pour chaque article, pour chaque rubrique et pour chaque brève. Par défaut, les forums de SPIP sont modérés à postériori. Cela signifie que chaque message envoyé par un utilisateur du site est immédiatement publié. En revanche, les administrateurs du site bénéficient d’une interface qui leur permet de lire les derniers messages postés depuis une semaine et, le cas échéant, de les supprimer.
SPIP étant un gestionnaire de contenus, il existe un processus permettant de rédiger, valider et publier un contenu (le worfflow). Un article est, au départ, en cours de rédaction par son auteur. Seul son auteur peut le voir, ainsi que les administrateurs du site. Lorsqu’il est prêt, il est proposé à la publication par son auteur, pour que les autres auteurs puissent donner leur avis. Enfin, si accord il y a, il est validé (publié en ligne) par un administrateur. Il apparaît alors dans le site public.
en cours de rédaction : son (ou ses) auteur(s) sont en train d’y travailler, il n’apparait donc pas sur le site public, et son accès est limité sur le site privé
proposé à la publication : lorsque l’auteur décide que son article est terminé, il le propose au comité de rédaction (les administrateurs et les autres rédacteurs) afin de décider s’il doit être publié ou non. L’article n’est toujours pas visible publiquement, mais tous les participants à l’espace privé peuvent le voir et son invités à le commenter dans un forum lié à cet article
publié : l’article est publié sur le site public
refusé : l’article n’est pas publié
Pour illustrer ce processus de publication, vous devez jouer tour à tour les rôles d'auteur, puis d'administrateur, puis enfin d'utilisateur public en :
Rédigeant sur le site de votre binôme 2 brèves et 2 articles, dans les rubriques de votre choix
Validant ou refusant les articles écrits sur votre site
Vérifiant, puis commentant sous forme de forum les articles écrits sur votre site.
Bien que SPIP intégre un mécanisme d'authentification pour la partie administration du site, il est intéressant de rajouter une sécurisation des répertoires cruciaux de votre application WEB. En utilisant les principes vus dans la premiere séance, configurez votre serveur Apache de manière à demander une autorisation supplémentaire lors de l'accès aux répertoires /var/www/spip/ecrire et /var/www/phpmyadmin/