Comment migrer son blog ou site Web en local
Vous vous demandez comment transférer votre blog en local de manière synchronisée sans avoir à utiliser la fonction « exporter/importer » de WordPress ? Ou comment maintenir les mêmes identifiants pour vos publications et catégories sur les deux plateformes ? Voici une solution efficace.
Réponse : via phpMyAdmin et requêtes SQL
Si vous avez déjà installé WordPress sur votre machine locale et tenté d’utiliser la fonction d’importation/exportation, vous avez probablement constaté que les ID de vos articles et catégories diffèrent, ce qui complique votre travail. Éviter cette méthode vous permet de garder vos blogs synchronisés entre le local et en ligne, tout en vous épargnant une perte de temps à recréer vos paramètres.
Pour mon premier article, je vais partager la méthode que j’ai testée ce matin. Il y a plus d’un an, j’ai créé un site pour un auteur et je souhaite y apporter des améliorations tout en testant quelques fonctionnalités avant la mise à jour vers WordPress 2.9. Pour ne pas déranger l’auteur et risquer de bloquer un site tiers, la solution de la copie locale et synchronisée s’avère être la meilleure.
Si vous disposez de plusieurs blogs ou souhaitez synchroniser un site existant avec sa version locale, la procédure habituelle peut s’avérer longue et compliquée. Voici des astuces pour simplifier le processus. J’ai utilisé EasyPHP 5.3.0 pour tester cette méthode, mais les principes s’appliquent aussi avec WAMP.
Étape 0 : Sauvegarder votre blog sur votre disque dur
Profitez de cet article pour télécharger tous les dossiers pertinents sur votre ordinateur, en incluant le dossier wp-content et tout autre dossier ajouté (comme vos sous-domaines). Une sauvegarde est toujours utile.
Étape 1 : Créer une table en local
Si vous n’avez pas encore de table de données ou si son nom diffère de celui en ligne, modifiez le nom pour qu’il corresponde. Pour créer une nouvelle table, ouvrez l’administration de EasyPHP. Faites un clic droit sur l’icône de EasyPHP, choisissez « Administration », puis sélectionnez « MySQL Administration » et vous serez dirigé vers phpMyAdmin local.
Étape 2 : Exporter votre base de données du blog en ligne
Accédez à votre console phpMyAdmin sur le serveur. Cela serait également l’opportunité d’optimiser votre table – cela permet d’effacer les données inutiles et d’accélérer l’accès à votre blog. Ensuite, exportez votre base de données dans un format compressé.
Étape 3 : Configuration de wp-config et installation
Dans le répertoire « www » de EasyPHP, créez un dossier portant le nom souhaité pour votre version locale. Par exemple : /monsitelocal/. Transférez-y votre version de WordPress, qu’elle soit toute nouvelle ou déjà modifiée. Si vous avez déjà téléchargé vos fichiers wp-content et autres, ajoutez-les également à ce dossier.
Renommez wp-config-sample.php en wp-config.php et remplissez-le en vous assurant de conserver le même préfixe que votre blog en ligne.
/** Nom de la base de données de WordPress. */
define('DB_NAME', 'nom-de-la-base-comme-celle-en-ligne');
/** Utilisateur de MySQL. */
define('DB_USER', 'root');
/** Mot de passe de MySQL. */
define('DB_PASSWORD', 'mysql');
/** Adresse d'hébergement MySQL. */
define('DB_HOST', 'localhost');
$table_prefix = 'wp_';
Étape 4 : Importer sa base de données vers le local
Retournez à votre console MySQL d’EasyPHP et importez la base de données que vous avez exportée précédemment. Si vous aviez déjà une installation de WordPress avec une base, commencez par la supprimer. Ensuite, tout est importé : articles, commentaires, mais les images restent liées à votre site en ligne et dépendent de votre choix.
Si cela n’a pas été fait, placez vos dossiers d’images et wp-content dans /monsitelocal/. Cela reste facultatif puisque tout devrait déjà être en place.
À ce stade, si vous tentez d’accéder à http://127.0.0.1/monsitelocal, vous risquez d’être redirigé vers le site en ligne.
Modifier les URLs
Réalisez quelques requêtes SQL pour corriger l’URL du site en local. Dans votre base, localisez options, puis website_url et aussi wp_options pour trouver siteurl.
Pour changer l’URL du site, exécutez :
UPDATE wp_options SET option_value = replace(option_value, 'http://www.mon-site-en-ligne.com', 'http://mon-site-en-local') WHERE option_name = 'home' OR option_name = 'siteurl';
Il est également important de modifier les URLs relatives :
UPDATE wp_posts SET guid = replace(guid, 'http://www.mon-site-en-ligne.com','http://127.0.0.1/monsitelocal');
Tout devrait maintenant être en ordre. Vos articles disposent des mêmes IDs. Notez qu’il faudra également mettre à jour les permaliens en local si vous les avez changés. Cela peut être résolu en ajoutant index.php dans la structure personnalisée des permaliens :
/index.php/%postname%/%category%/
Travailler sur les images
Si vous avez besoin d’accéder à vos images (c’est-à-dire changer leurs URLs), vous aurez deux options : soit effectuer une requête SQL, soit utiliser un plugin.
Voici une requête SQL pour remplacer les anciennes URLs dans le contenu des articles (notamment pour les images) :
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.mon-site-en-ligne.com','http://127.0.0.1/monsitelocal');
Plugins recommandés
- velvet-blues-update-urls : idéal pour transférer les images d’une ancienne adresse à une nouvelle.
- Cache-images : permet de récupérer les images hotlinkées dans votre propre dossier d’upload.
- Redirection : facilite les redirections permanentes.
Si un plugin génère des erreurs, pensez à le désactiver puis à le réactiver. Il en va de même pour votre navigateur, n’oubliez pas de vider le cache pour supprimer les cookies.
C’est tout ! Bien entendu, vous pouvez appliquer le même processus dans l’autre sens ou pour migrer vers une adresse différente.
