SPIP

De Cliss XXI
Sauter à la navigation Sauter à la recherche
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

SPIP permet de gérer un site de publication avec un modèle administrateur/rédacteur (validation a priori), un système de cache, de forums, de squelettes avec un language de requêtes sur les documents...

Mise à jour

Màj simple de SPIP: envoyer spip_loader.php3 sur le site, s'authentifier, aller sur http://site/spip_loader.php3, suivre les instructions. Corriger les squelettes si introduction d'une incompatibilité.

Mettre à jour la base

  • Allez dans l'interface administrateur
  • Cliquez sur le lien de mise à jour
  • Créez le dossier de confirmation dans ecrire/data
  • -> ce devrait être automatisé!! (ticket). Voir éventuellement [1]

Copier uniquement les fichiers spécifiques (non-SPIP)

\cp -a ../www/IMG .
rm -rf IMG/icones_barre/ IMG/icones/*-dist.* IMG/cache-*x*
rmdir IMG/icones/
\cp ../www/mes_fonctions.php3 mes_fonctions.php
\cp ../www/dossier_squelettes .

Mise à jour partielle des squelettes entre 1.8 et 1.9

cd dossier_squelettes
rm -f *.php3
sed -i -e 's/<INCLU[RD]E(\([^.]\+\)\.[^)]\+)\([^>]*\)>/<INCLURE{fond=\1}\2>/g' *.html
sed -i -e 's:#DOSSIER_SQUELETTE/\([a-zA-Z0-9_/.-]\+\):#CHEMIN{\1}:g' *.html


Utiliser SVN

But:

  • installation rapide:
svn co svn://trac.rezo.net/spip/branches/spip-2.0
chgrp -R www-data CACHE/ IMG/ ecrire/data/
chmod -R g+w CACHE/ IMG/ ecrire/data/
  • voir quels fichiers ont été modifiés/ajoutés dans une installation de SPIP
svn status
  • se mettre à jour les bugfixes rapidement:
svn update
  • pour mettre à jour vers la version d'après en supprimant les fichiers inutiles:
svn switch svn://trac.rezo.net/spip/branches/spip-2.1

Test Install

# sauvegarde de la base
mysqldump --opt base_spip > ~/spip-date.sql
# optionnel: utilisation de la base dans l'installation de test
mysql base_spip_test < ~/spip-date.sql 
# changement du nom du site
mysql base_spip_test -e "update spip_meta set valeur='http://spip.test.org' where nom='adresse_site';"
rm -rf tmp/meta_cache.php tmp/cache/*
# changement des paramètres
# file: ecrire/inc_connect.php3
# tidy permissions
chgrp -R www-data CACHE/ IMG/ ecrire/data/
chmod -R g+w CACHE/ IMG/ ecrire/data/

URLs "propres"

  • Déclarer le type d'URLs:
cat <<'EOF' > ecrire/mes_options.php
<?php
$type_urls = "propres";
EOF
  • Vérifier le .htaccess, en principe rien à faire si ce n'est vérifier qu'il est bien présent et bien nommé:
mv htaccess.txt .htaccess
  • Supprimer le cache:
rm -rf tmp/cache/*

EVA-Web

Les différences:

  • dossier eva/ avec l'aide en ligne
  • dossiers smileys/, images/ avec des images
  • des images associées aux articles dans IMG/
  • des fichiers PHP supplémentaires ecrire/eva_habillage.php3 ecrire/eva_colortable.gif pour modifier les .css depuis l'interface d'administration, fonction_deplier.js fonction_deplier.php3 pour les menus dépliants, spip_image_reduite.php3 pour les miniatures.
  • mes_fonctions.php3 avec de quoi gérer les smileys
  • ecrire/lang/local_fr.php3 pour des traductions spécifiques à EVA
  • ecrire/lang/spip_fr.php3 pour s/email/courriel/
  • eva_style.css, eva_style_print.css, eva_styles/ pour les styles

Passer EVA dans un SPIP 1.9.1

cp -a ../eva-web_v2.2/ecrire/eva_habillage.php3 ../eva-web_v2.2/ecrire/eva_colortable.gif ecrire/
cp -a ../eva-web_v2.2/fonction_deplier.* ../eva-web_v2.2/spip_image_reduite.php3 .
cp -a ../eva-web_v2.2/article-album-photo.php3 ../eva-web_v2.2/article-album.php3 .
cp -a ../eva-web_v2.2/mes_fonctions.php3 . # ou le faire à la main si vous avez modifié le ficher
cp -a ../eva-web_v2.2/smileys/ ../eva-web_v2.2/squelettes/ ../eva-web_v2.2/images/ .
cp -a ../eva-web_v2.2/eva_style.css ../eva-web_v2.2/eva_style_print.css ../eva-web_v2.2/eva_styles/ .
cp -a ../eva-web_v2.2/ecrire/lang/local_fr.php3 ecrire/lang/

fonction_deplier.php3 ne fonctionne plus, je l'ai remplacé par:

<?php
include_ecrire("inc_filtres.php3");
include_ecrire("inc_layer.php3");

Numéros réservés:

  • rub1: éléments de personnalisation
  • rub2: boutons de menu additionnels
  • rub16: rubrique Recherche avec présentation spéciale.
  • syndic7: logo du site en page d'accueil
  • article23: texte en page de connexion administrateur (ecrire/)

Donc:

  • Configuration/Référencement de sites et syndication: activer "Gérer un annuaire de sites Web"
  • Mots-clefs: groupe de mots-clef "Type d’affichage", assignable à une rubrique ou un article
    • agenda
    • album
    • bouton
    • calendrier
    • diaporama
    • editorial
  • Créer un secteur "Personnalisation d'EVA", logo "logo_eva.gif" (noter le numéro, rub1 dans EVA)
    • Une sous-rubrique "Boutons du menu" (noter le numéro, 2 dans EVA)
      • Lien "10. Plan du site", logo "plan_site.gif"
      • Lien "40. Ecrire", logo "ecrire.gif"
    • Une sous-rubrique "Titre, logo, URL du site"
      • Lien "Accueil", avec votre logo (noter le numéro, 7 dans EVA)
    • Une sous-rubrique "Fenêtre de connexion"
      • Article "Fenêtre de connexion", logo "ecrire.gif", sans auteur (noter le numéro, 23 dans EVA)
    • Une rubrique "Agenda", logo "agenda.gif", mots-clef "bouton" et "calendrier"

Pensez à anti-dater les articles créés pour éviter qu'ils n'arrivent dans la liste des derniers articles sur le site.

Les squelettes à modifier:

sed -i -e 's/id_syndic=7}/id_syndic=2}/g' *
sed -i -e 's/id_secteur \?!= \?1}/id_secteur != 147}/g' *
sed -i -e 's/id_article=23}/id_article=888}/g' *
sed -i -e 's/id_rubrique=2}/id_rubrique=148}/g' *

On ne traitera pas la rubrique "Recherche", donc vous pouvez supprimer rubrique-16.html et rubrique=16.html.

SpipCarto

Les bases de ce qu'il y a savoir:

État du développement: changements occasionnels pour 1.9.2


SPIP et LDAP

Installer le module php-ldap avant d'installer SPIP:

apt-get install php5-ldap

À l'installation SPIP vous propose de paramétrer LDAP.

Principe de fonctionnement:

  • Synchro LDAP unique au moment de la connexion (pas d'import en masse), importation (LDAP -> spip_auteurs):
    • uid -> login
    • cn -> nom
    • mail -> email
    • description -> bio
  • Pas de resynchro du CN à la prochaine connexion
  • Recherche du login sur les attributs sAMAccountName, uid, login, userid, cn, sn (attention: pas de vérification de doublon/unicité) - cf. ecrire/auth/ldap.php


HTTPS pour les pages sensibles

Le plugin redirhttps permet de forcer l'accès en HTTPS à la page de connexion ainsi qu'aux autres pages une fois connecté.

Il peut néanmoins être intéressant de le modifier pour prendre en compte une installation dans un sous-dossier, non géré pour l'instant (v0.1.1). Une fois le plugin installé, modifiez le fichier plugin/redirhttps/redirhttps_options.php pour que la condition ressemble à ceci :

if ((_request('page') == 'login' || isset($_COOKIE['spip_session']))
    && (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on')
    && $_SERVER['REQUEST_METHOD'] == 'GET') {

Enfin, derrière un reverse proxy, il faudra modifier certaines variables utilisées par SPIP pour générer les URLs et par ce plugin pour déterminer si on accède à la page en HTTPS. Pour ce faire, vous pouvez créer un fichier conf/mes_options.php contenant les lignes suivantes :

<?php

/**
 * Récupération et définition des en-têtes données par le reverse proxy.
 */
if (!empty($_SERVER['HTTP_X_FORWARDED_HOST']))
  $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
if (!empty($_SERVER['HTTP_X_REAL_IP'])
    && (filter_var($_SERVER['HTTP_X_REAL_IP'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== FALSE
        || filter_var($_SERVER['HTTP_X_REAL_IP'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== FALSE))
  $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
  $_SERVER['HTTPS'] = 'on';
  $_SERVER['SERVER_PORT'] = 443;
}

?>

Autres pages

  • Plugin SPIP: développer un plugin avec SPIP, techniques de programmation