Différences entre versions de « SPIP »
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/< | + | sed -i -e 's/<INCLU[RD]E(\([^.]\+\)\.[^)]\+)\([^>]*\)>/<INCLURE{fond=\1}\2>/g' *.html |
− | sed -i -e 's:#DOSSIER_SQUELETTE/\([a-zA-Z0- | + | 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- | + | 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 | + | 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/ | ||
− | == | + | == URLs "propres" == |
+ | |||
+ | * Déclarer le type d'URLs: | ||
+ | <pre> | ||
+ | cat <<'EOF' > ecrire/mes_options.php | ||
+ | <?php | ||
+ | $type_urls = "propres"; | ||
+ | EOF | ||
+ | </pre> | ||
− | + | * 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 | ||
− | * | + | * Supprimer le cache: |
− | * | + | rm -rf tmp/cache/* |
− | |||
== 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"
- 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