WordPress : Migrer un site en ligne vers une installation locale

Partager cet article

Temps estimé pour la lecture de cet article : 16 min

Quand vous avez un site internet, il est toujours pratique de pouvoir ce dernier en local, ça évite de casser la production quand vous voulez faire des tests ^__^. Oui mais voilà avec un CMS commme WordPress, ce n’est pas aussi facile que from scratch. N’ayez craintes c’est quand même plutôt simple à faire, nous allons voir comment.

Export de la base de données

La première chose à faire, c’est de se rendre sur le phpmyadmin de votre hébergeur (ou tout outils du même genre vous permettant de gérer votre base de données) et d’effectuer une backup de votre base de données. Sous phpmyadmin, une fois connectée, il ne vous reste plus qu’à aller dans Exporter, vous devriez arriver ici :

wordress-online-to-localhost-phpmyadmin

Choisissez le format sql puis cliquez sur exécuter, vous allez alors récupérer un fichier .sql du nom de votre base de données. Maintenant, on est prêt pour la seconde étape.

Mise à jour de la base de données locale et modification du fichier wp-config.php

Allez en local sur votre phpmyadmin et importez le script sql que vous venez de télécharger. Attention, généralement pour un gros site sous WordPress, la taille du fichier .sql que vous allez récupérer peut dépasser les 2 Mo, il vous faut alors augmenter la limite possible pour importer un script, je vous laisser donc suivre un tutoriel que j’ai écrit précédemment.

wordress-online-to-localhost-import

Une fois que vous avez votre base de données disponible en locale, il faut changer quelques données, en effet par défaut WordPress enregistre lors de l’installation, l’url de votre site, donc si on veut que ce dernier nous redirige sur la bonne page, il va falloir effectuer quelques modifications :

UPDATE wp_options 
SET option_value = replace(option_value, 'https://borntocode.fr', 'http://localhost/borntocode') 
WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts 
SET post_content = replace(post_content, 'https://borntocode.fr', 'http://localhost/borntocode');

UPDATE wp_posts 
SET guid = replace(guid, 'https://borntocode.fr','http://localhost/borntocode');

UPDATE wp_postmeta 
SET meta_value = replace(meta_value,'https://borntocode.fr','http://localhost/borntocode');

Ici, vous devez donc remplacer l’url d’origine de votre site, dans mon cas, je remplace borntocode.fr, par une valeur locale, ici localhost/borntocode.

Enfin, il ne nous reste plus qu’à mettre à jour le fichier wp-config.php de WordPress qui contient toutes les informations à propos de votre connexion à la base de données.

define('DB_NAME', 'borntocode');

define('DB_USER', 'root');

define('DB_PASSWORD', '');

define('DB_HOST', 'localhost');

Regardons que modifier et comment.

  • DB_NAME, c’est tout simplement le nom de votre base de données locale.
  • DB_USER, le nom de l’utilisateur capable de modifier et intéragir avec la base de données, généralement par défaut, c’est l’utilisateur root.
  • DB_PASSWORD, le mot de passe de l’utilisateur
  • DB_HOST, le nom de l’hôte, si vous adaptez d’un site en ligne, il faut parfois le modifier par localhost

Changement des permaliens

Enfin, il se peut qu’il y ait encore quelques problèmes de redirection, en cliquant sur un article vous pourriez vous retrouver avec une erreur 404, afin de corriger cela, il suffit de réecrire le fichier .htaccess. Pour le faire facilement, on se connecte dans l’administration, puis Réglages => Permaliens. Changez le type de lien par défaut pour « Simple ». Enregistrez. Et enfin, on remet sur celui désiré, généralement sur « nom de l’article ».

wordress-online-to-localhost-permalink

Il se peut que vous ayez aussi besoin de redonner au groupe www-data de apache, les bons droits afin de pouvoir effectuer les redirections par exemple, un simple :

sudo chown -R www-data:www-data borntocode/

Et voilà, vous pouvez maintenant faire des tests en local sans casser la production :p !

6 comments

  1. Je suis novice merci en tout cas, je suis juste bloqué après l’étape d’importation de la base de donnée qui s’est bien passée. Pour la suite j’ai bien compris qu’il fallait modifier l’url d’origine du site mais je ne sais pas exactement dans quel fichier. En sachant qu’à cette étape j’ai installer MAMP ok, mais pas encore wordpress en local… dois je modifier les fichiers avant et si oui par quel accès ..:/ merci

    • Alors, pour changer l’url d’origine du site, c’est toujours dans phpMyAdmin. Tu commences par sélectionner la base de données que tu viens d’importer. Ensuite, tu cliques sur le second onglet « SQL ». Tu copies , colles les 12 lignes de code que j’ai mis dans l’article (UPDATE wp_options…), en adaptant à l’url de ton site. Enfin, tu cliques sur go pour exécuter les commandes SQL. Si, tout s’est bien passé tu devrais avoir x lignes de modifiées. Et c’est bon, tu peux passer à la suite du tutoriel. Si ça peut t’aider un tutoriel en anglais avec quelques screenshots: https://www.siteground.com/tutorials/phpmyadmin/query/. Bon courage !

  2. bonjour et merci pour le tuto
    cependant j’ai un peu de mal a suivre. je suis a l’etape ou il faut mettre a jour wp-config.php mais je ne le trouve nulle part.

  3. Bonjour,
    Je me permet de revenir apres une longue absence. Je suis allé chercher le fichier wp-config.php. et voici ce que j’avais à l’interieur :
    /** Nom de la base de données de WordPress. */
    define( ‘DB_NAME’, ‘pizzeria’ );

    /** Utilisateur de la base de données MySQL. */
    define( ‘DB_USER’, ‘root’ );

    /** Mot de passe de la base de données MySQL. */
    define( ‘DB_PASSWORD’,  » );

    /** Adresse de l’hébergement MySQL. */
    define( ‘DB_HOST’, ‘localhost’ );

    /** Jeu de caractères à utiliser par la base de données lors de la création des tables. */
    define( ‘DB_CHARSET’, ‘utf8mb4’ );
    /**
    * Type de collation de la base de données.
    * N’y touchez que si vous savez ce que vous faites.
    */
    define( ‘DB_COLLATE’,  » );

    Cependant lorsque je veux ouvrir mon site j’ai une erreur 404. Je ne comprends ou j’ai pu faire une erreur, si j’en ai fais une.

Laisser un commentaire

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

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