Sélectionner une page

WordPress : PHP 4 ou PHP 5 ?

PHP pinup masturbation onanismeLes blogs et autres CMS utilisent le langage libre PHP pour fonctionner : un salmigondis de caractères introuvables sur le clavier (les programmeurs parlent de langage intuitif…) capable de générer des pages HTML dynamiques à partir de requêtes et d’une base de donnée MySQL. C’est déjà du chinois, je sais, mais ceux qui bataillent avec Joomla ou WordPress comprendront… Il existe pour ces systèmes d’innombrables plugins pour étendre les fonctionnalités, qui sont capables de faire pratiquement tout et n’importe quoi (sauf la fonction « grille pain » qui demande encore de se déplacer jusqu’à la cuisine…). Je ne parlerais que des plugins de WordPress, ces derniers offrant une certaine cohérence de programmation, d’installation et de fonctionnement. Malgré tout, vous avez sans doute crisé en constatant que tel ou tel plugin « ne marche pas » malgré toutes vos tentatives désespérées. Précisément « celui qu’il vous faut absolument »… Bien souvent, la cause en est la version PHP installée. En effet, il existe le PHP 4 ET le PHP 5. Et votre hébergeur (en tout cas le mien, 1and1) propose les deux à la création de votre base de donnée. Alors, vous avez peut-être fait comme moi : choisir PHP 4 en vous disant, comme c’est souvent le cas en informatique, « qui peut le moins peut le plus » et qu’il vaut mieux installer une version « classique » pour une meilleure compatibilité. Et puis, il sera toujours temps de mettre à jour… Tout faux !

Procédez manuellement !

Constatant que beaucoup d’excellents plugins ne fonctionnent qu’avec PHP 5, j’ai donc décidé d’upgrader ma base de donnée avec cette version. Mais sur le serveur, que nenni, pas de case magique à cocher, pas une indication ou plutôt si : « il n’existe pas de méthode simple pour migrer une base PHP 4 vers PHP 5. Veuillez choisir la version à la création de la base ou procéder manuellement »… Procéder manuellement ! Autrement dit, on nous encourage à la masturbation ! En cherchant un peu sur Internet, j’ai donc trouvé la procédure onaniste…

Avant toute chose, sauvegarder votre base de données (à la main, pour l’entraînement, à partir de l’interface MySQL ou à l’aide d’un plugin dédié). Sauvegarder également l’intégralité du blog avec ses images et autres médias. On n’est jamais trop prudent…

Ensuite :

  1. Dans le fichier .htaccess, situé à la racine de votre blog, il faut rajouter la formule cabalistique suivante (on notera la perversité des espaces, tirets et autres majuscules aléatoires…) : AddType x-mapp-php5 .php
  2. Créer une nouvelle base de données PHP 5.
  3. Importer l’ancienne base de données. Ça ne marche pas ? Ça mouline sans fin ? C’est normal ! La base de données est souvent trop volumineuse et bien sûr rien n’a été prévu pour cela. Invraisemblable ! Il faut alors ouvrir la base dans un éditeur de texte et la tronçonner en petits morceaux (en respectant la structure) et importer ceux-ci les uns après les autres…
  4. Modifier le nom, login et mot de passe de la base de donnée (remplacer l’ancienne par la nouvelle) dans le fichier wp-config.php
  5. En principe, l’admin de WordPress va alors procéder toute seule au renouvellement du cache…
  6. Quand tout marche bien, vous pouvez détruire l’ancienne base.

Aussi improbable que cela paraisse, j’ai réussi ces manœuvres du premier coup… Même pas mal ! WordPress est vraiment un outil fabuleux… Dès lors, à vous les joies de tous les plugins. Enfin presque tous : certains ne fonctionnent QUE sous PHP 4…

Publié le Nov 25, 2008

Voir le site pro ?

Tous les tableaux

Tous les articles

22 Commentaires

  1. Denis

    WordPress est quand même une énorme usine à gaz. Après avoir entendu pleins d’éloges dessus, j’ai décidé de le tester pour créer un nouveau blog (le teasing, ça c’est fait).
    Honnêtement, c’est mal foutu, je préfère vraiment doclclear. Mais je peux comprendre que la multitudes de plugin plaisent aux gens. Mais a ton vraiment besoin de tout ça ?
    Même le template par default n’es pas valide xhtml.
    Bonjour le boulot de réécriture que je suis en train de faire.

    Réponse
  2. Francis Le Guen

    Salut Denis !
    Il y a longtemps que je n’ai pas été voir ce que propose DotClear. Mais je reste un fan de WordPress (il est vrai qu’après Joomla…).
    Un nouveau blog ? Tiens, tiens… Déjà, ton rythme et ta qualité de publication m’impressionnent : Je ne sais pas comment tu fais. Sans parler de la Wii 😉

    Réponse
  3. Denis

    Francis > Je dors très peu…

    Réponse
  4. Sylvain

    Hello,

    En ce qui concerne la migration d’une base de donnée MySQL 4.0 vers 5.0, il ne fallait pas chercher bien loin 🙂

    http://faq.1and1.fr/scripts/mysql/13.html

    Je poserais la question autrement : vaut il mieux que 1&1 active par défaut PHP 4 ou PHP 5, sachant que PHP 6 n’est pas loin 🙂

    A +

    Réponse
  5. Anthony

    Salut Fran6,
    en lisant ton article, je suis allé farfouiller dans mes paramètres wordpress, puis je me suis aperçu que mon thème mandigo n’était pas à jour… c’est chose faite, du coup les avatars s’affichent maintenant… dès fois ça tient à pas grand chose en effet…
    Un truc que j’aimerais bien faire c’est justifier le nuage de tags… je vois que les tiens ne le sont pas non plus… pas de solution ???
    A+ !

    Réponse
  6. Francis Le Guen

    Sylvain :
    Alors là, je suis impressionné ! Vous avez donc une alerte Google vous signalant toutes les mentions de 1and1 sur le net : vous devez avoir des choses à lire… Autant pour moi : je suis sûr que ce lien sera utile à d’autres.
    Toutefois, vous mentionnez cette phrase :
    « Important : Cette intervention n’est pas banale, nous vous recommandons de l’entreprendre que si vous êtes en mesure de gérer des enregistrements SQL. »
    On est bien d’accord 😉
    Précisons à l’attention de nos lecteurs que je suis pleinement satisfait de l’hébergeur 1and1 après une expérience longue et malheureuse avec Amen. Ce commentaire le prouve : il y a toujours quelqu’un pour vous répondre !
    En l’occurence, les hébergeurs ne sont pas en cause, mais pour les débutants, jongler avec l’interface (austère ? Mais non !) de MySQL et les arcanes du PHP qu’il soit 4, 5 ou… 6 est un chemin de croix… Mais on a rien sans rien, n’est ce pas ? Quand a PHP 6 : ça nous promet encore de beaux emmerdements avec les plugins 😉

    Réponse
  7. Francis Le Guen

    Anthony :
    Gaffe à Mandigo pour les mises à jour ! Si tu as modifié les feuilles de styles (si, si, tu verras, tu seras obligé…), sans passer par « insert HTML », tu es bon pour tout refaire ! Et bonjour pour se souvenir des « subtiles » modifs…
    Comment ça justifié ? Mon nuage est justifié à gauche… Il y a des réglages quelquepart… De toute façon, j’ai une sainte horreur des nuages… Sinon, tu as Cumulus, que j’avais installé. C’est marrant 5 minutes…

    Réponse
  8. Sylvain

    J’utilise Wikio tout simplement de temps en temps 🙂
    Personne n’est parfait, Amen, OVH ou encore 1and1 : le tout, à mon sens, est de rester objectif et factuel. Et effectivement, on trouve beaucoup de choses sur le net…
    Vivement PHP 6 qu’on en rediscute 🙂 !
    Par ailleurs, petite anecdote : par manque de ressource (MEM limit) sous PHP4, certains utilisateurs ont des erreurs 500… en passant en PHP 5, soit le problème est résolu, soit l’affichage de l’erreur va en indiquer l’origine… donc j’opterais plus volontiers pour du 5… (avis qui n’engage que moi)
    Enfin, certains fournisseurs acceptent les valeurs négatives dans les scripts PHP pour éviter les « trop d’erreurs » – je suis mitigé sur la question, car dès qu’on change de fournisseur (hosting), si ce dernier n’accepte pas les valeurs négatives, bein pouff : erreur… alors qu’à la base, ça vient du script tout simplement…
    Enfin bon, c’est une autre affaire.
    A bientôt !

    Réponse
  9. Anthony

    Oula… là ça me dépasse un peu… mais j’ai fait la mise à jour et tout à l’air de fonctionner, pourtant « insert html » ne me parle pas LOL. En fait, pour la mise à jour, j’ai ajouter la dernière version de mandigo sur le serveur, et après j’ai fait comme si je choisissais un autre thème, c’est peut-être pour ça, non ?

    Pour les tags, je voulais dire justifié des 2 côtés (d’ailleurs « justifié » il me semble que ça veut dire automatiquement des 2 côtés non ? sinon c’est aligné à gauche ou à droite… en tout cas c’est mentionné comme ça dans Word… mais bon c’est un peu ambigüe) . Je me rappelle de cumulus sur ton blog, j’ai joué avec environ… 5 minutes… LOL, mais j’ai peur que ça s’affiche pas correctement sur tout les ordis.

    Et pour finir, je suis chez 1and1 depuis plus d’un an, et j’en suis ravi aussi, je les trouve efficace, l’interface est assez sympa, et ils ont des bon tarifs.

    Réponse
  10. Francis Le Guen

    Sylvain : Heu… je ne voudrais pas paraître négatif mais, c’est quoi les valeurs négatives dans un script ? J’ai peur que votre niveau ne surclasse largement le mien et celui de la plupart de mes lecteurs. A propos : Oyez ! Un informaticien, un vrai : on en tient un !

    Anthony : Il faut que tu installes un plugin dédié nuages de tags. Il y en a plein et je pense qu’il doit être possible de « justifier » (des deux côtés) 😉

    Réponse
  11. Francis Le Guen

    Anthony : je me suis penché (sans tomber !) sur ton histoire de justification. En fait, cela dépend de la feuille de style de Mandigo « sidebar » qui justifie à gauche… Il faut donc modifier la CSS. Comme j’actualise souvent, je n’en ferais rien. Par contre, j’ai installé colonne de gauche un nouveau nuage de tags que chacun peut organiser à sa guise (cliquer/déplacer/relacher… Souffler!) Ça ne sert à rien mais on peut jouer des heures… Et dans la foulée j’ai installé dessous un nuage des participants les plus actifs sur ce blog. Et qui arrive en tête (en bleu) ? Mmmm ?

    Réponse
  12. Anthony

    Salut Fran6 ! MMMDDDRRRR, Excellent ! Faut que je fasse attention, bientôt mon prénom ne rentre plus sur une ligne !
    Bon j’essayerai de me pencher (…) sur la css ce weekend ! Ça me perturbe cette histoire, je veux que ça soit justifié des 2 côtés et quand j’arrive pas à faire quelque chose… ça m’énerve ! LOL… mais je suis entrain de me dire que c’est peut-être pas possible en fait… à cause des différentes tailles de police, à moins qu’il espace plus les lettres…
    Sinon, j’ai installé Simple tags… je teste voir ce que ça donne… Pas mal celui que tu as installé aussi… ça permet de jouer 5 minutes encore 😉
    A+!

    ps: demain je vais voir du matos photo d’occaz, j’ai peut-être trouvé un super coup, vais surement cassé la tirelire… si c’est la cas, on sabre la limonade hein ! j’te tiens au courant 😉

    Réponse
  13. Francis Le Guen

    Anthony : en effet, j’ai du tricher sur la taille de police pour que tu rentres dans la ligne !
    Simple tags : plugin essentiel, en effet. Un super coup, Hmmm ? Je sors non pas le sabre mais la machette d’un ex coupeur de têtes dayak dans la forêt de Bornéo qui me l’a échangée contre ma frontale autour d’un arbre à curare. Mais, encore une fois, ceci est une autre histoire 😉

    Réponse
  14. Anthony

    Oups… pis à ce que je viens de voir… j’ai pris le large !
    J’ai vu le matos …. nickel ! Je m’apprête à monter sur l’escabot pour exploser la tirelire LOL. Dès que j’ai le tout entre les mains, je te donne le détail !
    Donc… on va machetter la bouteille ! Euh… comment il va la recharger la frontale 😉 ce charmant monsieur ?
    Tiens c’est marrant, on parle justement de partir en Malaisie l’année prochaine plutôt que la guadeloupe…

    Réponse
  15. olybop

    je vois que je viens de tomber sur des fan de la migration. ca fait plaisir. je ‘flip » un peu de la migration de php4 en php5 chez 1&1 pour mon blog. juste une question con :
    si je suis les indications de la FAQ 1&1. il suffit d’exporter la base, de détruire la base, la recreer en php5 et de reinporter le zip de la base. c’est tout….ca me parrait trop simple pour etre vrai ??
    merci !

    Réponse
    • Francis Le Guen

      Bonjour migrateur !
      Ce message arrivera sans doute trop tard… Ce n’est pas si simple en effet. D’abord, il faut garder la base initiale php4, au cas ou (tchou)… Ensuite, essayer d’importer la sauvegarde SQL gzippée dans une nouvelle base PHP5. Mais tout dépend de la taille de la dite base : au delà d’une certaine limite l’importation ne marche plus, je ne sais plus pour quelle raison. Il faut alors découper la base en tranches (ce n’est qu’un fichier texte), en respectant les attributions, et les importer unes par unes. C’est ainsi que j’ai procédé… Bon courage 😉

      Réponse
  16. Olybop

    En effet ! J’ai planté toute ma base sql en faisant la migration et leur truc j’exporte, je re-importe ne fonctionne pas du tout alors j’ai du en effet tout faire « a la mano » pour réimporter ma base.

    Maintenant tout fonctionne bien ( même si j’ai encore des erreurs 500 du au htcacces qui « saute » tout seul)

    merci bien ! mon blog roule à merveille maintenant 😎

    Réponse
    • Francis Le Guen

      Oui. Les Linuxiens aiment bien travailler « à la main » 😉

      Réponse
  17. Denis

    J’adore tes articles technique. Par contre tu ne confond pas php et Mysql ?
    La base de donnée n’a strictement rien à voir avec le php, tu peux passer en php 5 sans modifier ta base (qui elle dépend des version de mysql).
    Par contre tu ne peux pas forcement utiliser toutes les fonctions.

    Réponse
    • Francis Le Guen

      Hou-là, c’est un vieil article ! En effet il y a un peu d’imprécisions concernant PHP et MySQL (le terme « créer un nouvelle base de données PHP5 est impropre). Mais je m’en réfère à la doc de 1&1 (à l’époque où ils étaient performants…) : « il n’existe pas de méthode simple pour migrer une base PHP 4 vers PHP 5 ».
      Si on veut utiliser PHP 5 il me semble qu’il faut bien quand même trifouiller la base (même si, on est d’accord, MySQL est une base de donnée et PHP un langage indépendant).
      Tout cela est quand même clair comme de l’eau de vaisselle ! 😉

      Réponse
  18. Mike

    Effectivement, il y a confusion entre PHP et MySQL. Si je comprends bien il est question de migrer sa base de données MySQL 4 en MySQL 5, et il n’y a pas d’action automatique. Il faut pour cela créer une nouvelle base de données, et effectuer un export/import SQL de l’ancienne base vers la nouvelle. Et bien sûr si l’on possède qu’une seule base de données, il sera nécessaire de faire un export – supprimer la base – créer une base – import.

    Plus d’infos sur la FAQ 1&1 : http://faq.1and1.fr/scripts/mysql/migration/

    Réponse

Laissez une réponse à Francis Le Guen Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *