Mise à jour 1 .9 .x vers 2 .0 .x

(article mis-à-jour le 8 août 2009)

La version 2 de spip étant une version majeure, la mise à jour d’un site en version 1.9.x est particulière. [1]

Quelques conseils pour que la transition se fasse au mieux

-  désactiver tous les plugins par la page : ecrire/ ?exec=admin_plugin

-  faire une sauvegarde de la base de données en utilisant la procédure de spip 1.9.x : ecrire/ ?exec=admin_tech

-  récupérer cette sauvegarde par ftp (elle se trouve dans tmp/dump/ ou, pour des versions plus anciennes, dans ecrire/data/) et la conserver soigneusement en local.

-  créer un répertoire à la racine de spip (par exemple ancien_spip/)

-  déplacer à l’intérieur de ce répertoire tous les fichiers et répertoires de spip 1.9.x SAUF les répertoires IMG/ et config/
-  si vous aviez un fichier mes_options.php le déplacer dans config/

  • ne devrait donc rester à la racine que :
    • ancien_spip/
    • config/
    • IMG/

-  déposer par ftp, à la racine de son site, l’ensemble des fichiers et répertoires de spip 2.0.x sauf les répertoires IMG/ et config/

  • devraient donc se trouver à la racine :
    • ancien_spip/
    • CHANGELOG.txt
    • config/
    • COPYING.txt
    • ecrire/
    • htaccess.txt
    • IMG/
    • index.php
    • INSTALL.txt
    • local/
    • prive/
    • rien.gif
    • spip.php
    • squelettes-dist/
    • svn.revision
    • tmp/

-  entrer avec son navigateur dans http://le_site/ecrire/ [2]

-  accepter la mise à jour de la base de données

  • à ce stade, vous devriez retrouver, dans l’espace privé, l’intégralité des données de votre ancien site et une navigation dans l’espace public devrait les afficher avec les squelettes par défaut de spip (couleur mauve)
  • en cas de problème (page blanche par exemple), essayer de renommer temporairement votre fichier mes_options.php (dans le répertoire config/) pour le désactiver.

-  récupérer maintenant les version adaptées à spip 2 des plugins que vous utilisiez et installer ces nouvelles versions dans un répertoire plugins/ à créer.

ou bien, après avoir créé un répertoire plugins/ puis son sous-répertoire auto/ utiliser la procédure d’auto installation des plugins proposée dans la page ecrire/ ?exec=admin_plugin

-  reste à créer un répertoire squelettes/ (si vous en avez l’utilité) et y déplacer calmement, par petits groupes, vos anciennes personnalisations récupérées depuis ancien_spip/squelettes/

-  si vous aviez un fichier mes_fonctions.php, vérifier la conformité de ses fonctions et déclarations avec les nouvelles fonctions et variables de spip 2.0.x

-  idem si des scripts php sont présents dans vos squelettes personnalisés

-  si vous n’avez pas déjà un .htaccess actif, il vous faudra renommer htaccess.txt en .htaccess pour bénéficier des urls propres, arbo...

LES SQUELETTES

rappel :
les fichiers rangés dans votre répertoire squelettes/ prennent le pas sur ceux placés par défaut dans squelettes-dist/ ou dans prive/

si vous avez, en 1.9.x, copié l’organisation de votre répertoire squelettes/ sur celle de dist/ , sachez que 2.0.x apporte des modifications importantes à cette organisation et qu’il vous faudra veiller à ne pas avoir des fichiers fantômes appelés en lieu et place des légitimes.
en particulier, un ancien squelettes/login.html tout comme squelettes/formulaires/login.html prendront le pas (et ce pourra être un problème) sur prive/login.html et prive/formulaires/login.html.

attention aussi aux fichiers de feuille de style et aux fichiers de script javascript.

-  liste des fichiers qui étaient dans dist/ (que vous avez peut-être personnalisés dans squelettes/) et qui ont été déplacés ou supprimés :

ancien nouveau
dist/favicon.ico supprimé
dist/jquery.js.html supprimé
dist/login.html prive/login.html
dist/sommaire_texte.html supprimé
dist/spip_admin.css prive/spip_admin.css
dist/spip_style_invisible.css privé/spip_style_invisible.css
dist/spip_style_print.css prive/spip_style_print.css
dist/spip_style_visible.css prive/spip_style_visible.css
dist/spip_style.css prive/spip_style.css
dist/style_prive_defaut.css prive/style_prive_defaut.css
dist/style_prive.html prive/style_prive.html
dist/formulaires/choix_mots.html supprimé
dist/formulaires/forum_previsu.html supprimé
dist/formulaires/login_forum.html supprimé
dist/formulaires/login.html prive/formulaires/login.html
dist/formulaires/menu_lang.html prive/formulaires/menu_lang.html
dist/modeles/doc.html prive/modeles/doc.html
dist/modeles/emb.html prive/modeles/emb.html
dist/modeles/img.html prive/modeles/img.html
dist/modeles/pagination_page_precedent_suivant.html prive/modeles/pagination_page_precedent_suivant.html
dist/modeles/pagination_page.html prive/modeles/pagination_page.html
dist/modeles/pagination_precedent_suivant.html prive/modeles/pagination_precedent_suivant.html
dist/modeles/pagination.html prive/modeles/pagination.html
dist/modeles/paginationitem.html prive/modeles/paginationitem.html
dist/icones_barre/ prive/icones_barre/
dist/images/ prive/images/
dist/javascript/ prive/javascript/
dist/vignettes/ prive/vignettes/

d’une manière générale, s’inspirer des nouveaux squelettes de squelettes-dist/ et prive/ pour reprendre et mettre à jour vos personnalisations dans squelettes/


si vous avez déjà effectué votre mise-à-jour en déposant les fichiers de spip 2.0.x sur votre spip 1.9.x, alors il reste sans doute d’anciens fichiers devenus obsolètes et que vous pouvez supprimer :

-  passage de 1.9.2 à 2.0.x stable [14697]
ces fichiers qui existaient en 1.9.2, sont, en 2.0.x, soit supprimés, soit déplacés
(cela concerne essentiellement le répertoire ecrire/ et ses sous-répertoires) il convient de les supprimer

-  ecrire/action/autoriser.php
-  ecrire/action/ical.php
-  ecrire/action/inscription.php
-  ecrire/action/instituer_mot.php
-  ecrire/action/instituer_rubrique_articles.php
-  ecrire/action/pass.php
-  ecrire/action/rss.php
-  ecrire/action/test_dirs.php

-  ecrire/base/db_mysql.php
-  ecrire/base/optimiser.php

-  ecrire/engines-list.txt

-  ecrire/exec/articles_ortho.php
-  ecrire/exec/editer_mot.php attention !!! ne pas confondre avec ’ecrire/exec/editer_mots.php’ (pluriel) qui est bien un fichier 2.0.x
-  ecrire/exec/export.php
-  ecrire/exec/forum_envoi.php
-  ecrire/exec/puce_statut_article.php
-  ecrire/exec/rubriquer.php
-  ecrire/exec/statistiques_svg.php

-  ecrire/extract/doc.php
-  ecrire/extract/pdf.php
-  ecrire/extract/rtf.php

-  ecrire/inc/auth_ldap.php
-  ecrire/inc/auth_spip.php
-  ecrire/inc/compacte_js.php
-  ecrire/inc/cron.php
-  ecrire/inc/editer_article.php
-  ecrire/inc/editer_mot.php attention !!! ne pas confondre avec ’ecrire/inc/editer_mots.php’ (pluriel) qui est bien un fichier 2.0.x
-  ecrire/inc/extra.php
-  ecrire/inc/indenter_xml.php
-  ecrire/inc/indexation.php
-  ecrire/inc/maintenance.php
-  ecrire/inc/ortho.php
-  ecrire/inc/popularites.php
-  ecrire/inc/sax.php
-  ecrire/inc/sites_voir.php
-  ecrire/inc/valider_xml.php
-  ecrire/inc/visites.php

-  ecrire/install/etape_5.php
-  ecrire/install/etape_6.php

-  ecrire/safehtml/classes/HTMLSax3.php
-  ecrire/safehtml/classes/safehtml.php
-  ecrire/safehtml/classes/HTMLSax3/Decorators.php
-  ecrire/safehtml/classes/HTMLSax3/States.php
-  ecrire/safehtml/license.txt
-  ecrire/safehtml/readme-SPIP.txt
-  ecrire/safehtml/readme.txt

-  ecrire/urls/propres-qs.php attention !!! ne pas confondre avec ’ecrire/urls/propres_qs.php’ (underscore) qui est bien un fichier 2.0.x

-  ecrire/xml/atom.php
-  ecrire/xml/ical.php
-  ecrire/xml/rss.php

-  ecrire/win_png.htc

-  le répertoire dist/ et tous ses fichiers (voir plus haut LES SQUELETTES)

-  le répertoire oo/ et son fichier index.php

-  les 3 fichiers à la racine :

  • inc-public.php3
  • UPGRADE.txt
  • win_png.htc

Notes

[1mais vous pouvez éviter toute cette procédure complexe et terrifiante en migrant de façon simple et insouciante grâce à spip_loader

[2sur un spip ancien, l’accès à ecrire/ vous proposera la page d’installation d’un nouveau spip.

-  suivez alors la procédure (choix de langue, connexion base de données...)

  • étape 1 : vous aurez besoin de renseigner votre login de connexion et votre mot de passe de connexion à la base de données (pour rappel, ces informations se trouvent dans le fichier ecrire/inc_connect.php3 à la ligne spip_connect_db('adresse_serveur','port_serveur','login_connexion','pass_connexion','nom_base');).
  • étape 2 : cochez dans la liste proposée « choisissez votre base :» la base utilisée par votre (ancien) spip (nom_base de votre ancien fichier inc_connect.php3).
  • étape 3 : renseignez vos identifiants spip (nom, login, pass)

-  puis entrez dans ecrire/

-  validez le message « Message technique : la procédure de mise à jour doit être lancée afin d’adapter la base de données à la nouvelle version de SPIP. » en cliquant sur cliquer sur ce lien

-  validez encore

vous êtes en spip 2.0.x et votre base est à jour.

Discussion

28 discussions

  • Je n’arrive pas à suivre le conseil :
    Dans configuration dans le champ « Adresse (URL) du site public » veuillez entrer l’adresse exacte de votre site en local.
    Dans la version 2.0.10 je n’ai pas trouvé ce champ :(

    Répondre à ce message

  • 1

    Bon tuto, clair et rassurant pour un débutant comme moi.
    La mise à jour a réussi, mais...
    J’ai un pb avec les mots-clés : les anciens sont présents mais impossible d’en créer de nouveaux !
    Je suis donc bloqué pour installer eva-news lié au mot-clé « evenement » absent de la base et pour mini-cal par ex.
    Comment faire ?

    Répondre à ce message

  • 1

    Bonjour,
    Je viens de tenter de basculer un spip 1.9 vers la version 2.
    Je ne parviens pas à terminer la procédure de mise à jour des bases de données : des erreurs sont signalées sur mysql.php, ligne 142

    Can’t DROP ’id_type’ ; check that column/key exists in .../html/ecrire/req/mysql.php on line 142

    Unknown column ’id_type’ in ’spip_types_documents’ in .../html/ecrire/req/mysql.php on line 142

    Can’t DROP ’id_type’ ; check that column/key exists in .../html/ecrire/req/mysql.php on line 142

    Multiple primary key defined in .../html/ecrire/req/mysql.php on line 142

    Auriez-vous des conseils à me donner ? Le site public fonctionne, mais à chaque fois que je vais dans l’espace privé, je suis dirigée vers la page de mise à jour des bases, sans rien pouvoir faire d’autre.

    Merci par avance à ceux qui auront quelques clés à me donner ...

    Bien cordialement,
    Martine Cavey Lemoine

    • martine

      Rebonjour,
      J’ai persisté dans ma demande de mise à jour de la base, passant d’un compte administrateur à un autre, et au bout de six tentatives, une quinzaine d’actualisations, la procédure est allée à son terme.

      Désolée d’avoir occupé le forum pour un problème simple et déroutant, qui s’est spontanément résolu. De la pire espère, donc !

      Bonne continuation,
      Très cordialement,
      Martine

    Répondre à ce message

  • Bonjour,

    merci pour ces instructions.

    je suis passé de 1.9.2e vers 2.1.8 presque sans encombre en suivant la procédure.

    J’ai eu des avertissements au moment de la sauvegarde de la base de données. Il a fallu que j’aille bricoler dans phpmyadmin pour modifier une ligne. (changement du type de valeur varchar(255) en text - devait trainer depuis la V1.8). J’ai un peu galéré n’étant pas spécialiste.
    Bref, après cette modif, sauvegarde db ok.

    Le reste de la procédure s’est déroulé comme indiqué.

    A la fin, après validation de la mise à jour de la base de données, le message technique apparait une seconde fois. il faut revalider de la même manière mais je trouve la fin du tuto un peu floue à ce sujet. La première fois en revoyant le même message de nouveau j’ai cru que ça n’avait pas fonctionné.

    Pour ceux qui se posent la question, cliquez de nouveau sur le lien.

    Répondre à ce message

  • Je viens de faire une migration de 1.9.2 vers 2.1.6 et RAS
    tout s’est s’est très bien passé :-)
    merci beaucoup

    Répondre à ce message

  • 2
    Jonathan

    Bonjour,

    ce thread est un peu vieux, mais je viens de tenter d’upgrader mon installation spip de 1.9.2b a 2.1.0, et je me suis mis dans une galère pas possible.
    Je n’arrête pas d’avoir des problèmes de permissions d’écriture. Je crois que ces problèmes sont liés au fait que tous les scripts de spip sont effectués par l’utilisateur « apache » sur mon serveur.

    A chaque fois que j’ai obtenu une erreur du type :
    « The system encountered an error when trying to write the file tmp/cache//.ok. As a site administrator, please verify write permissions of the directory tmp/cache. »
    le fichier ou répertoire qui était censé ne pouvoir être créé l’était en fait. Il était possédé par apache, et les droits étaient correctement ouverts. Le script de spip ne voulait cependant pas progresser plus avant.
    Pour résoudre le problème, il a « suffi » que j’efface le répertoire en question et le recrée en 777 sous mon login et non apache. Vu le nombre de répertoire a créer, ça a été assez pénible.

    J’ai tant bien que mal réussi à obtenir que l’espace privé soit accessible, mais à chaque fois que je fais quelque chose de nouveau (en gros à chaque fois qu’il faut créer un répertoire quelque part, ce qui arrive tout de même souvent...), je retombe sur des erreurs de permission, qu’il faut que je résolve à la main après avoir inspecté les divers fichiers log...
    Cette solution n’est donc pas pérenne. Sans parler de chaque sous-répertoire de « cache-vignettes »...

    Tout d’abord, est-ce « habituel » que les répertoires et fichiers créés appartiennent à « apache » ? Y a-t-il un moyen de contourner ceci ? Ou bien le problème est-il ailleurs ?

    • Ami spipien

      Bonjour,

      Je ne peux te dire pourquoi c’est arrivé mais si les droits sont ceux d’apache, tu peux les changer en passant par SSH.

      Pour connaître les droits des répertoires tu tapes en SSH ls -l.
      Pour changer les droits (user et/ou groupe) tu utilises la commande « chown » et/ou « chgrp ».
      Je t’invite dans tous les cas à te tourner vers ton administrateur serveur ou ton hébergeur qui pourra certainement t’aider si tu ne connais pas et qui aura sûrement ces connaissances.

      Bon courage

    • Bonsoir,

      Mon expérience personnelle à ce sujet est résumée ici : http://forum.spip.org/fr_224350.html

      Régis

    Répondre à ce message

  • 3

    Super tuto.

    Par contre y ajouter en note la solution de Lisanga concernant les erreurs 404 serait une bonne idée.

    Ced’

    Répondre à ce message

  • 1

    Bonjour,

    j’ai un problème au niveau d’une des premières étapes : lorsque j’accède pour la première fois à « http://le_site/ecrire/ ». L’interface privée fonctionne, mais l’interface publique affiche un « Erreur 404 ». Si quelqu’un a déjà eu ce problème...

    • De plus, lorsque je clique sur « accéder à l’interface privée », je suis redirigé vers
      http://localhost/ecrire/
      au lieu de
      http://localhost/mon-site/ecrire/

      J’ai clairement un problème d’adresses. D’autre part, la fonction « vider le cache » dans l’interface privée ne fonctionne pas pour les images. Je ne sais pas du tout d’où ça peut venir (je ne suis qu’un pauvre débutant). Help !

    Répondre à ce message

  • 1

    Bonjour,
    Quand j’arrive à la page proposant la mise à jour de la base, j’obtiens systématiquement une page blanche (?exec=upgrade&reinstall=non).
    J’ai effectué une réinstallation, vidé le cache et même le contenu de « temp ». Impossible d’aller plus loin :-(

    Une idée ?

    PS : j’ai bêtement oublié de désactiver le plugin « thickbox2 » avant de sauvegarder la bd et de faire la mise à jour... mais quand même...

    • quelle était la version de l’ancien spip ?
      ne reste t il pas un fichier mes_options.php personnalisé ?
      le dossier plugins/ a t il bien été désactivé (renommé, déplacé) ?
      le code source html de la ’page blanche’ est il vide ?

    Répondre à ce message

  • 1

    Bonjour Denisb,
    Ancienne version 1.9.2d, pas de fichier mes_options ou mes_fonction, plus de dossier plugins, et pas de code source de la page blanche.
    Herbergement Ouvaton.

    Je sais c’est mince...

    • Une réinstallation en 1.9.2d, puis une nouvelle tentative de migration en 2.0.9 sans plus de succès, finalement au bout d’un moment et après avoir actualisé la page de nombreuses fois : Miracle, ça fonctionne !
      No comment :-/

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom