SPIP
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"
- Une sous-rubrique "Boutons du menu" (noter le numéro, 2 dans EVA)
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:
- Téléchargements BerliOS
- Release SPIP Zone? (plus récent)
- Chez SPIP Zone
- Page d'accueil du plugin: cassée
- Page d'accueil officielle: vieille
- Documentation: cf. site de test
É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