Sélectionner une page

Octopuce héberge de très très nombreux sites web, et de très nombreux sont sous le CMS WordPress. Cet article va expliquer comment on peut migrer un WordPress d’un serveur à un autre, à condition de disposer d’un accès SSH des 2 côtés (notre cas le plus courant).

Tout d’abord : LE DNS !

Comme toute migration, le principal problème est souvent le DNS : puisqu’on migre, on va devoir faire pointer le nom de dommaine sur le nouveau serveur. Pour cela, on recommande de s’y prendre au moins l’avant-veille pour s’assurere que les TTLs du nom de domaine sont à une valeur faible (entre 10 min et 1h par exemple) et pas à 1 jour ou 4 heures : Cette TTL déterminera le « temps d’incertitude », donc le temps pendant lequel une partie des internautes arrivera sur l’ancien serveur alors qu’une autre partie arrivera sur le nouveau.

Autre point important du DNS : il faut absolument que vous puissiez modifier les pointeurs A / AAAA de votre domaine en totue autonomie, ou à défaut, que la personne qui a le pouvoir de le faire participe à la migration : le jour J il faudra changer les pointeurs A & AAAA du domaine pour passer de l’ancien au nouveau serveur.

Pour la TTL, par exemple pour migrer « sonntag.fr », on vérifie sa TTL, à l’aide de la commande suivante :
$ dig +short NS sonntag.fr
ns1.octopuce.fr
ns2.octopuce.net

on obtient des serveurs DNS. On prend un de ses serveurs au hasard et on lui demande le A du domaine. Dig nous répond avec l’adresse IP ET la durée de cache de cette information :
$ dig A sonntag.fr @ns1.octopuce.fr
;; ANSWER SECTION:
sonntag.fr. 3600 IN A 91.194.60.2

On voit ici que la TTL est de 3600 secondes, soit 1H, ça ira bien. Si elle est de plus que 1H, on recommande de la baisser de suite, et d’attendre 2 fois l’ancienne TTL avant de continuer la migration.

La migration des données

Si vous n’avez pas accès SSH aux serveurs

Vous pouvez utiliser le greffon updraft plus pour faire une sauvegarde de votre wordpress, et récupérer les fichiers ainsi sauvegardés. Installez ensuite, sur le serveur cible, et sur un nom de domaine temporaire, un wordpress neuf et vide avec uniquement le plugin updraft d’installé. Recopiez vos backups updraft au même endroit. et demandez à updraft de restaurer. C’est simple mais cela peut prendre un peu de temps et de place disque si le site est gros. Enfin, si votre site est très gros, cela prendra du temps…

Si vous avez accès en SSH aux 2 serveurs

Notre cas le plus courant : dans ce cas il suffit de procéder ainsi :

  • regarder quelle base de données est utilisée dans wp-config.php et effectuer un dump de celle-ci via la commande mysqldump -ucompte -pmotdepasse base |gzip -1 > date-base.sql.gz
  • Lancer un rsync de tout le dossier racine : cela recopie tous les fichiers et code du wordpress de la source à la cible, y compris le fichier de base de données. Par exemple
    rsync www/ usercible@serveurcible:~/www/ -rtlP
    Note: il faut probablement que vous utilisiez la transmission de l’agent SSH d’un serveur à l’autre avec ssh -A pour pouvoir faire la copie, ou qu’une clé soit autorisée d’un serveur à l’autre. On peut aussi faire la copie dans l’autre sens : « tirer » les données sur le serveur ciblie pluttôt que les « pousser » depuis le serveur source.
    Enfin, si le site est très gros, je recommande de faire un rsync la veille, pour avoir d’ore et déjà 99% des données du site déjà arrivées : ainsi, le jour J, on n’aura que le dump SQL et les derniers fichiers téléchargés sur le site à transférer.
  • Sur le serveur cible, créer la base MySQL et noter ses paramètres d’accès (login/pass/db) restaurer la base mysql avec la commande zcat date-base.sql.gz | mysql -ucompte -pmotdepasse basecible
  • Modifier wp-config.php sur la cible pour utiliser les nouveaux paramètres MySQL, essentiellement DB_NAME DB_USER DB_PASSWORD et DB_HOST
  • Supprimez le dump de base (ne surtout pas le laisser accessible s’il est dans l’espace web du serveur !)

À partir du moment où tout le site est ainsi recopié, on peut modifier les pointages DNS pour qu’ils arrivent sur le nouveau serveur.

Et le certificat TLS ?

Si vous êtes hébergé chez Octopuce sur un panel AlternC, le certificat TLS permettant d’avoir le cadenas sur un navigateur web est un service fourni automatiquement. Cependant, le certificat ne peut être obtenu que une fois le site migré. Il y a donc une période de quelques minutes entre le moment où vous avez modifié les pointeurs DNS du domaine et le moment où un certificat pourra être obtenu. Un peu de patience (et si besoin un appel au support pour vérifier et accélérer la procédure) !

Et si on doit changer les serveurs DNS eux-même ?

Si vous devez migrer un nom de domaine en entier, à savoir non seulement le site lui-même, mais aussi les serveurs DNS du nom de domaine concerné, je vous recommande de procéder en étapes distinctes séparées de plusieurs jours. Ainsi, on évite de poser des problèmes de migration de plusieurs services, qui risquent de se bloquer les uns les autres…

Typiquement, une opération de changement des serveurs DNS d’un domaine peut prendre de 1h à 48h selon les cas, ce qui peut être intolérable si le site web ou les mails du domaine doivent être eux aussi migrés.

Si on souhaite modifier les serveurs DNS d’un nom de domaine, on préfèrera le faire dès le début de la migration (avant de bouger les mails ou le site web) ou à la toute fin de celle-ci.

Enfin, n’oubliez pas que certains prestataires fournissent des services « tous ensemble » ou « aucun » mais pas « à moitié ». Par exemple, un service d’enregistrement de noms de domaines comme Gandi vous fourni le service DNS gracieusement, mais si votre domaine est bougé chez un autre registrar, il faudra bouger AUSSI les DNS en même temps dans ce cas car Gandi ne gèrera plus les DNS de votre domaine.

De la même façon, si vous changez les DNS d’un domaine, il faut avoir recopié le contenu de la zone DNS bien AVANT de lancer le changement de serveur auprès du registrar. Si vous ne le faites pas, vous risquez de perdre des visites sur le site web, et, pire, de perdre des mails pendant une durée pouvant atteindre plusieurs jours !

Bref, la migration DNS est un tout autre sujet, et nous vous conseillons d’être très prudent sur cet aspect, et de toujours prévoir une procédure précise et datée de migration, à faire écrire par un professionnel ;)