Comment migrer ses sites locaux vers Wamp 3.0

 

Cela faisait 3 ans que je n'avais pas changé de Wamp, et donc de version de php, sur mon PC. Cela ne me dérangeait pas plus que cela, mais comme j'avais l'intention de tester une fonction qui n'est supportée qu'à partir de php 5.5 et que Wamp 2.4 ne propose que php 5.4, j'ai décidé de sauter le pas.

Installation

Je m'attendais à ce que soit long et pénible. Je n'ai pas été déçue.

Alors déjà, contrairement à la majorité des logiciels, il n'y a pas de système d'update (pas de la version 2.4 à la version 3.0 en tout cas…). On réinstalle tout, dans un répertoire distinct. Et ensuite on migre les sites et les bases de données dans le nouveau Wamp.

L'installeur annonce tout de go qu'il va avoir besoin de 2 Go d'espace disque. Carrément. Petit gourmand…

Il a fallu que je m'y reprenne à 4 fois pour installer le nouveau Wamp. En effet, celui-ci a besoin de paquetages Microsoft Visual Studio pour fonctionner. Et comme l'installateur de Wamp est une bouse innommable, même pas fichue de détecter dès le début si les bonnes DLL sont présentes, il faut se farcir à chaque fois tout le processus d'installation, avec choix du répertoire, du navigateur et de l'éditeur de texte par défaut, pour ensuite se voir annoncer qu'il manque MSVCR140.dll. Saleté, va.

Alors je les ai téléchargées et installés, ces fichus VC. Tous. De la version 9 à la version 15. Les 32 et les 64 bits. Parce que les 64 bits ne suffisent pas, comme l'indique cet article. Ça a bien pris une heure. Après cela, le machin a enfin daigné s'installer jusqu'au bout.

Super, on va pouvoir commencer à migrer nos bases de données.

Migration des bases

J'avais fait un export global des bases sur l'ancien Wamp. L'import a échoué dès la 1e base. Je n'en attendais pas moins de phpMyAdmin… Il a donc fallu créer les exports de bases l'une après l'autre (sympa quand on en a plus d'une trentaine).

Reste à importer les tables. Les tables en MyISAM encore, c'est du gâteau. Une fois les bases créées, il n'y a qu'à copier tous les fichiers frm, MYD et MYI vers leur nouvelle destination. Ils sont toujours situés dans wamp\bin\mysql\mysqlX.X.X\data\.

Les innoDB, c'est plus pénible. Or tous mes sites WordPress sont en innoDB. Là, y a pas le choix, il faut faire un export SQL via le phpMyAdmin de l'ancien Wamp. Evidemment les deux Wamp ne peuvent pas fonctionner simultanément (il faudrait essayer, peut-être qu'en précisant un port de fonctionnement différent à l'un des deux…). Et l'importation n'est pas instantanée (une petite barre de progression ou une liste des tables en cours de copie ne serait pas de trop).

Il y a quand même un progrès : la taille max autorisée pour le fichier SQL est désormais de 128 Mo. Pas besoin d'aller farfouiller dans php.ini et dans alias/phpmyadmin.conf pour l'augmenter !

Bref, béni soit le MyISAM (même si c'est moins performant, paraît-il).

Ah oui, et ne pas oublier de recréer les privilèges pour les accès des sites à leur bases de données (l'onglet Utilisateurs a été renommée en Comptes d'utilisateurs).

Migration des sites et ajustements

Ensuite, je migre les répertoires des sites et applications situées dans /www. Alors autant le dire tout de suite, les plus anciens sites codés en php datent de 2002. A l'époque, c'était short tags, mysql_query(), ISO-8859-1 et tout le tintouin. Et vous pensez bien que j'ai vraiment autre chose à faire que de repasser sur tous les scripts pour convertir tout ça.

Messages d'erreur deprecated, short tags et réglage du charset

Du coup, j'ai droit à quelques messages d'erreur. Ah oui, et puis l'heure renvoyée par la fonction date() retarde de deux heures !

Donc direction le php.ini, afin de régler les paramètres suivants :

short_open_tag = On
error_reporting = E_ALL & ~E_DEPRECATED
default_charset = "ISO-8859-1"
date.timezone ="Europe/Paris"

Eh oui je sais, c'est pas bien de masquer les erreur « deprecated ». Mais, si mes sites me rapportaient de l'argent, j'aurais enfin le temps pour les faire évoluer en profondeur…

Désactivation du mode strict de MySQL

Premier essai d'insertion de données MySQL. 1er échec avec

#1366 – Incorrect integer value:  » for column ‘type' at row 1

Eh oui, désormais on est en mode strict, et insérer un vide dans une colonne qui attend un int, c'est maaal…

Et comme, là encore, je n'ai pas le temps de repasser sur tous mes scripts, je vais dans my.ini, et je décommente :

sql-mode=""

Plus d'URL rewriting fonctionnel ?

Les « Pretty Permalink » (URL rewriting) de mes versions locales WordPress ne fonctionnent plus. A la place, s'affiche la page d'accueil de Wamp sans sa CSS, le résultat est immonde. Pourtant, « rewrite_module » est coché. Tant pis, on verra un autre jour !

Authentification permanente sous phpMyAdmin

Il faut s'authentifier sous phpMyAdmin (root et mot de passe vide, comme toujours) et la session expire au bout de quelques dizaines de minutes. C'est sécure, certes, mais c'est pénible. Ça se change dans : wamp\apps\phpmyadmin4.6.4\config.inc.php : changer la valeur de $cfg[‘Servers'][$i][‘auth_type'] de « cookie » à « config ». A réserver à une configuration locale de dév, évidemment…

Configuration du SMTP

Premier test d'envoi de mail : PHPmailer me répond « Could not instantiate mail function ».

Il faut retourner dans php.ini et paramétrer la variable SMTP (ce qui ne veut pas forcément dire que les mails seront délivrés, parce qu'avec les antispams, de nos jours…). Par exemple, si vous êtes chez Numericable…

SMTP = smtp.numericable.fr

Mise à jour des chemins dans les programmes tiers

Comme j'ai installé le nouveau Wamp dans un répertoire /wamp3, il me reste encore à mettre à jour les chemins vers le nouveau répertoire de chaque site ou application dans Dreamweaver et dans FileZilla. Pour Dreamweaver, c'est assez long, car celui-ci doit à chaque fois recréer l'antémémoire…

 

Conclusion

On y aura passé l'après-midi et une bonne partie de la soirée ! Merci Wamp…

Alors qu'est ce qu'il y a sous le capot ?

  • Apache 2.4.23
  • PHP 5.6.25
  • MySQL 5.7.14
  • phpMyAdmin 4.6.4

Bon, il y a quand même des aspects positifs :

  • bon ben voilà, je l'ai mon php 5.6 (et si je le souhaite, je peux même activer php 7)
  • grâce au choix de l'éditeur de texte par défaut, je peux enfin ouvrir les fichiers de config dans Notepad++
  • c'est l'occasion de faire un peu le ménage dans les vieux projets

Partager

Flux RSS Envoyer le lien  un ami par mail
 
«
»