Différences entre versions de « SPIP »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m
imported>JeromeLebleu
(Ajout " HTTPS pour les pages sensibles")
 
(24 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 25 : Ligne 25 :
 
  cd dossier_squelettes
 
  cd dossier_squelettes
 
  rm -f *.php3
 
  rm -f *.php3
  sed -i -e 's/<INCLURE(\([^.]\+\)\.[^)]\+)\([^>]*\)>/<INCLURE{fond=\1}\2>/g' *.html
+
  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
+
  sed -i -e 's:#DOSSIER_SQUELETTE/\([a-zA-Z0-9_/.-]\+\):#CHEMIN{\1}:g' *.html
  
  
Ligne 33 : Ligne 33 :
 
But:
 
But:
 
* installation rapide:
 
* installation rapide:
  svn co svn://trac.rezo.net/spip/branches/spip-1.8
+
  svn co svn://trac.rezo.net/spip/branches/spip-2.0
 
  chgrp -R www-data CACHE/ IMG/ ecrire/data/
 
  chgrp -R www-data CACHE/ IMG/ ecrire/data/
 
  chmod -R g+w CACHE/ IMG/ ecrire/data/
 
  chmod -R g+w CACHE/ IMG/ ecrire/data/
Ligne 41 : Ligne 41 :
 
  svn update
 
  svn update
 
* pour mettre à jour vers la version d'après en supprimant les fichiers inutiles:
 
* pour mettre à jour vers la version d'après en supprimant les fichiers inutiles:
  svn switch svn://trac.rezo.net/spip/branches/spip-1.9
+
  svn switch svn://trac.rezo.net/spip/branches/spip-2.1
  
 
== Test Install ==
 
== Test Install ==
Ligne 52 : Ligne 52 :
 
  # changement du nom du site
 
  # changement du nom du site
 
  mysql base_spip_test -e "update spip_meta set valeur='http://spip.test.org' where nom='adresse_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
 
  # changement des paramètres
 
  # file: ecrire/inc_connect.php3
 
  # file: ecrire/inc_connect.php3
Ligne 59 : Ligne 60 :
 
  chmod -R g+w CACHE/ IMG/ ecrire/data/
 
  chmod -R g+w CACHE/ IMG/ ecrire/data/
  
== SpipCarto ==
+
== URLs "propres" ==
 +
 
 +
* Déclarer le type d'URLs:
 +
<pre>
 +
cat <<'EOF' > ecrire/mes_options.php
 +
<?php
 +
$type_urls = "propres";
 +
EOF
 +
</pre>
  
Les bases de ce qu'il y a savoir:
+
* Vérifier le <code>.htaccess</code>, en principe rien à faire si ce n'est vérifier qu'il est bien présent et bien nommé:
 +
mv htaccess.txt .htaccess
  
* Récupération: cvs -d:pserver:anonymous@cvs.berlios.de:/cvsroot/spip-carto co -r BRANCH-V1 spipcarto
+
* Supprimer le cache:
* Installation: http://yoursite/ecrire/cartes.php3?installation=oui (cf. [http://www.geolibre.net/article.php3?id_article=25 site officiel])
+
rm -rf tmp/cache/*
* Documentation: cf. [http://spipcarto.free.fr/rubrique.php3?id_rubrique=2 site de test]
 
  
 
== EVA-Web ==
 
== EVA-Web ==
Ligne 103 : Ligne 112 :
 
Donc:
 
Donc:
 
* Configuration/Référencement de sites et syndication: activer "Gérer un annuaire de sites Web"
 
* 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)
 
* 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)
 
** Une sous-rubrique "Boutons du menu" (noter le numéro, 2 dans EVA)
** Lien "10. Plan du site", logo "plan_site.gif"
+
*** Lien "10. Plan du site", logo "plan_site.gif"
** Lien "40. Ecrire", logo "ecrire.gif"
+
*** Lien "40. Ecrire", logo "ecrire.gif"
 
** Une sous-rubrique "Titre, logo, URL du site"
 
** Une sous-rubrique "Titre, logo, URL du site"
 
*** Lien "Accueil", avec votre logo (noter le numéro, 7 dans EVA)
 
*** Lien "Accueil", avec votre logo (noter le numéro, 7 dans EVA)
 
** Une sous-rubrique "Fenêtre de connexion"
 
** Une sous-rubrique "Fenêtre de connexion"
 
*** Article "Fenêtre de connexion", logo "ecrire.gif", sans auteur (noter le numéro, 23 dans EVA)
 
*** 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:
 
Les squelettes à modifier:
  sed -i -e 's/id_syndic=7/id_syndic=2/g' *
+
  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_secteur \?!= \?1}/id_secteur != 147}/g' *
  sed -i -e 's/id_article=23/id_article=888/g' *
+
  sed -i -e 's/id_article=23}/id_article=888}/g' *
  sed -i -e 's/id_rubrique=2/id_rubrique=148/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:
 +
 
 +
* [http://developer.berlios.de/project/showfiles.php?group_id=2878 Téléchargements BerliOS]
 +
* [http://files.spip.org/spip-zone/spipcarto_1_9_1.zip Release SPIP Zone?] (plus récent)
 +
* [http://zone.spip.org/trac/spip-zone/browser/_plugins_/_test_/spipcarto Chez SPIP Zone]
 +
* [http://spip-carto.berlios.de Page d'accueil du plugin]: cassée
 +
* [http://www.geolibre.net/mot.php3?id_mot=9 Page d'accueil officielle]: vieille
 +
* Documentation: cf. [http://spipcarto.free.fr/rubrique.php3?id_rubrique=2 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. <code>ecrire/auth/ldap.php</code>
 +
 
 +
 
 +
== HTTPS pour les pages sensibles ==
 +
 
 +
Le plugin [http://plugins.spip.net/redirhttps 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 <code>plugin/redirhttps/redirhttps_options.php</code> 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 <code>conf/mes_options.php</code> 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

Version actuelle datée du 17 janvier 2017 à 15:28

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