Logo WordPressJe viens d’archiver l’ensemble des pages de mon blog pour en faire quelque chose de plus lisible et plus convivial et me débarrasser au passage de toutes les infos obsolètes ou autrement erronées. Techniquement, j’ai donc copié toutes les pages existantes hébergées sur blog.microlinux.fr vers un nouveau domaine archives.microlinux.fr, pour qu’elles puissent y être consultées à l’avenir.

La copie d’un site confectionné avec WordPress n’est pas tout à fait triviale, étant donné que le domaine est codé « en dur » dans la base de données. Il ne suffit donc pas de copier l’arborescence de fichiers et la base de données tels quels. Il existe certes un certain nombre de plug-ins pour effectuer une telle opération, mais à mon humble avis, ce n’est pas une mauvaise idée de savoir chasser l’ours à mains nues dans ce cas de figure.

Dans l’exemple ci-dessous, je copie les pages du site existant blog.microlinux.fr vers archives.microlinux.fr. La première phase de l’opération est triviale, et je ne rentrerai pas dans les détails :

  • Faire une sauvegarde de la base MySQL microlinux-blog.
  • Créer la base MySQL microlinux-archives.
  • Importer la base sauvegardée microlinux-blog vers microlinux-archives.
  • Copier l’arborescence du blog vers l’hébergement archives.microlinux.fr en préservant les permissions de fichiers.
  • Éditer wp-config.php et renseigner les paramètres de la base locale.

À partir de là, je dois opérer une série de modifications dans la base de données, pour remplacer toutes les URL codées « en dur ». La plupart des tutoriels utilisent PHPMyAdmin pour ce genre d’opération. Pour ma part, je préfère le bon vieux moniteur MySQL, qui fait tout aussi bien l’affaire.

La racine du site est fournie dans la table wp_options. Il faudra modifier deux occurrences :

mysql> select option_name, option_value
    -> from wp_options
    -> where option_name = 'home'
    -> or option_name = 'siteurl';
+-------------+----------------------------+
| option_name | option_value               |
+-------------+----------------------------+
| home        | https://blog.microlinux.fr |
| siteurl     | https://blog.microlinux.fr |
+-------------+----------------------------+
2 rows in set (0.00 sec)

mysql> update wp_options
    -> set option_value = 'https://archives.microlinux.fr'
    -> where option_name = 'home'
    -> or option_name = 'siteurl';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> select option_name, option_value
    -> from wp_options
    -> where option_name = 'home'
    -> or option_name = 'siteurl';
+-------------+--------------------------------+
| option_name | option_value                   |
+-------------+--------------------------------+
| home        | https://archives.microlinux.fr |
| siteurl     | https://archives.microlinux.fr |
+-------------+--------------------------------+
2 rows in set (0.00 sec)

De manière similaire, on va procéder à un remplacement systématique de l’URL dans les autres tables de la base :

mysql> update wp_posts
    -> set guid = replace ( guid,
    -> 'https://blog.microlinux.fr',
    -> 'https://archives.microlinux.fr');
Query OK, 2565 rows affected (0.08 sec)
Rows matched: 3433  Changed: 2565  Warnings: 0

mysql> update wp_posts
    -> set post_content = replace ( post_content,
    -> 'https://blog.microlinux.fr',
    -> 'https://archives.microlinux.fr');
Query OK, 1816 rows affected (0.34 sec)
Rows matched: 3433  Changed: 1816  Warnings: 0

mysql> update wp_postmeta
    -> set meta_value = replace ( meta_value,
    -> 'https://blog.microlinux.fr',
    -> 'https://archives.microlinux.fr');
Query OK, 1 row affected (0.03 sec)
Rows matched: 3572  Changed: 1  Warnings: 0

À partir de là, on peut se connecter à la copie conforme du site :

Archives Microlinux


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 

Catégories : Hébergement

0 commentaire

Répondre à Anonyme Annuler la réponse

Avatar placeholder

Votre adresse e-mail ne sera pas publiée.