Recette: Migrer un blog WordPress vers AWS Lightsail

Le blog sur lequel vous vous trouvez actuellement était hébergé sur un serveur privé virtuel. Mon hébergeur a décidé de cesser ses activités et j’ai dû partir. Il m’a gentiment suggéré de considérer AWS Lightsail comme une option de migration. C’est ce que j’ai fait et c’est là que ce blog est maintenant hébergé.

Ce blog n’est pas nouveau. Il avait déjà du contenu. Il dispose également de personnalisations telles que des plugins et des thèmes. Cet article explique comment exporter le contenu et les personnalisations d’un ancien blog et les importer sur Lightsail. Sa précision peut varier en fonction du niveau de personnalisation de votre blog. Une connaissance de la ligne de commande (CLI) est requise.

Si vous ne l’avez pas encore fait, vous pouvez suivre le guide de démarrage rapide officiel : WordPress sur Amazon Lightsail pour mettre en place la configuration de base. Veillez à choisir un système de gestion de base de données correspondant à celui à partir duquel vous allez exporter. Une fois que vous avez confirmé que (1) la configuration DNS est correcte en accédant à la page avec un navigateur et que (2) vous pouvez vous connecter à la machine avec SSH, vous pouvez continuer.

Faire correspondre les versions de WordPress

Idéalement, les versions de WordPress pour votre blog existant et celle de Lightsail devraient correspondre. La solution la plus simple est de se connecter aux deux et de lancer les mises à jour pour obtenir la version la plus récente.

Exportation à partir de l’ancien blog

Depuis votre blog existant, vous devrez exporter deux choses : la base de données (DB) et le répertoire wp-content.

Pour la base de données, vous pouvez l’exporter à l’aide d’une simple commande. Si vous utilisez mysql, la commande sera quelque chose comme

mysqldump -u DB_USER -p DB_NAME > blog.sql

Si votre fournisseur de base de données est mariadb ou postgres, il existe des commandes similaires.

Pour créer une archive du répertoire wp-content, allez à la racine de votre ancien répertoire WordPress et exécutez

tar -zcvf wp-content.tar.gz wp-content

Vous pouvez ensuite utiliser scp pour copier localement les fichiers blog.sql et wp-content.tar.gz.

scp user@host:path-to-wp-content.tar.gz .
scp user@host:path-to-blog.sql .

Importer vers Lightsail

AVERTISSEMENT : Soyez prudent. Faites-le à vos risques et périls. Les erreurs peuvent briser le déploiement de Lightsail.

L’importation dans Lightsail n’est pas aussi directe qu’elle pourrait l’être car certaines permissions sont manquantes. Nous allons les contourner.

La BD

En ce qui concerne la base de données, en raison des autorisations, nous ne pouvons pas en créer une nouvelle. Nous devrons donc travailler avec celle que nous avons.

Trouver les informations d’identification de la base de données

Pour trouver les informations d’identification de la base de données, connectez-vous avec SSH à l’instance de Lightsail. Ensuite, exécutez

vim stack/wordpress/wp-config.php

Recherchez DB_NAME, DB_USER et DB_PASSWORD pour obtenir les valeurs associées.

Renommer les tables WordPress de Lightsail

Si vous savez que vos anciennes tables de base de données WordPress utilisaient un préfixe autre que celui par défaut, vous pouvez sauter cette étape.

Sinon, cette étape est importante pour éviter les collisions avec les tables que vous allez importer. Renommer les tables existantes signifie également que vous pouvez les restaurer si les choses tournent mal.

Sur l’instance de Lightsail, vous pouvez copier-coller ce qui suit dans un script nommé rename_wp_tables.sql.

ALTER TABLE wp_commentmeta RENAME back_wp_commentmeta;
ALTER TABLE wp_comments RENAME back_wp_comments;
ALTER TABLE wp_links RENAME back_wp_links;
ALTER TABLE wp_options RENAME back_wp_options;
ALTER TABLE wp_postmeta RENAME back_wp_postmeta;
ALTER TABLE wp_posts RENAME back_wp_posts;
ALTER TABLE wp_term_relationships RENAME back_wp_term_relationships;
ALTER TABLE wp_term_taxonomy RENAME back_wp_term_taxonomy;
ALTER TABLE wp_termmeta RENAME back_wp_termmeta;
ALTER TABLE wp_terms RENAME back_wp_terms;
ALTER TABLE wp_usermeta RENAME back_wp_usermeta;
ALTER TABLE wp_users RENAME back_wp_users;

Puis exécutez-le.

mariadb -u DB_USER -p DB_NAME < rename_wp_tables.sql

Importer la BD

Depuis votre environnement local, téléversez votre fichier blog.sql vers l’instance de Lightsail.

scp blog.sql user@host:.

Ensuite, à partir de l’instance de Lightsail, importez-le.

mariadb -u DB_USER -p DB_NAME < blog.sql

Peut-être : Mettre à jour wp-config.php

Si les noms de vos tables importées ont le préfixe wp_, vous pouvez sauter cette étape. Sinon, exécutez

vim stack/wordpress/wp-config.php

Recherchez table_prefix et donnez-lui la valeur de votre préfixe.

Notez que pour utiliser les tables qui ont été renommées précédemment, vous pouvez définir cette valeur à back_wp_.

Les personnalisations

Depuis votre environnement local, copiez votre archive wp-content.tar.gz sur Lightsail.

scp wp-content.tar.gz user@host:.

Connectez-vous à l’instance Lightsail et extrayez le fichier ici. (En raison des permissions, nous ne pouvons pas simplement l’extraire au bon endroit).

tar -xvf wp-content.tar.gz

Sauvegardez le contenu du répertoire wp-content de Lightsail. Si les choses tournent mal, vous pourez les restaurer.

cd stack/wordpress/wp-content
mv languages{,BACK}
mv plugins{,BACK}
mv themes{,BACK}

Déplacez ensuite ces 4 répertoires de votre archive vers l’emplacement actuel. (Notez que le répertoire uploads n’a pas besoin d’être sauvegardé car il est vide.)

mv ~/wp-content/languages .
mv ~/wp-content/plugins .
mv ~/wp-content/themes .
mv ~/wp-content/uploads .

Maintenant, le blog fonctionnera, mais pas les mises à jour. C’est parce que le propriétaire des fichiers ne correspond pas à celui utilisé pour faire fonctionner le blog et qu’il ne sera pas en mesure d’écraser les fichiers. Si vous utilisez toujours l’utilisateur par défaut de bitnami, cela peut être corrigé en lançant

sudo chown -R bitnami:daemon languages
sudo chown -R bitnami:daemon plugins
sudo chown -R bitnami:daemon themes
sudo chown -R bitnami:daemon uploads

Récapitulation

Cela devrait maintenant fonctionner. Allez sur la page WordPress /wp-admin de Lightsail et connectez-vous avec vos anciens identifiants, pas ceux de Lightsail. Les identifiants Lightsail étaient valides pour la version du blog qui se trouve dans les tables de sauvegarde / celles qui ont un préfixe différent. À ce stade, c’est à vous de conserver ou de supprimer ces tables ainsi que les fichiers de sauvegarde dans wp-content.

Si vous êtes curieux, j’utilise la configuration de base de Lightsail actuellement à 3,50 USD par mois.

  • 512 Mo RAM
  • 2 vCPUs
  • 20 Go SSD
  • 1To de transfert

Comme j’ai au maximum 100 vues par jour, cela suffit amplement.


Billets reliés

Leave a Reply

Ce site utilise Akismet pour réduire le pourriel. En savoir plus sur comment les données de vos commentaires sont utilisées.