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 :
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.
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 ».
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 !
Edit du 03/02/2021 pour FORCE_SSL_ADMIN
Petit information qui pourrait vous intéresser, j’ai activé le SSL sur toute les pages d’administration de mon wordpress. Oui, mais voilà si justement vous faites la migration, il faut penser à désactiver l’option sinon vous n’aurez pas accès à la page d’administration. Il vous suffit d’éditer le fichier wp-config et de désactiver l’option, comme ceci :
define('FORCE_SSL_ADMIN', false);
Voilà, petit truc tout bête mais qui peut rendre fou 😉
Marche parfaitement avec la version de WordPress actuelle (5.1.1). Merci. Evite de galérer pendant des heures 🙂
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 !
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.
Hello :wave: !
Alors, le fichier en question sera à la racine de votre site, il vous suffira de l’ouvrir avec un éditeur de texte de votre choix.
Pour plus d’informations, je vous laisse lire le tutoriel suivant: https://www.wpbeginner.com/beginners-guide/beginners-guide-to-wordpress-file-and-directory-structure/.
N’hésitez pas à me redire s’il vous manque des informations !
Bon courage.
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.
Bonjour,
J’ai essayé de changer les douze lignes et j’ai ce messages d’erreur :
Erreur
Requête SQL : Copier
UPDATE wp_options
SET option_value = replace(option_value, ‘https://coiffure-nathalie.cciopenlab.fr’, ‘http://localhost/coiffure’)
WHERE option_name = ‘home’ OR option_name = ‘siteurl’
MySQL a répondu : Documentation
#1146 – La table ‘coiffure.wp_options’ n’existe pas
Qu’est-ce que je dois faire ? Je suis novice.
Merci.
Bonjour Nathalie,
Lorsque tu arrives sur phpmyadmin, commence par sélectionner la base de données en question que tu veux modifier. Tu auras alors le listing de toutes les tables de ton WordPress.
Tu peux alors retrouver une table qui se termine par pré-fixe_options. Il faut savoir qu’à l’installation de WordPress on peut changer le pré-fixe par défaut qui est « wp_ » par celui de notre choix.
C’est pour cela que le nom de la table peut-être légèrement différent que dans le tutoriel. Une fois, le nom de ta table trouvée, remplace juste par celui-ci dans la requête.
Donc par exemple dans ton cas, si le préfixe est « coiff_ », ça te ferait quelque chose du genre:
UPDATE coiff_options
SET option_value = replace(option_value, ‘https://coiffure-nathalie.cciopenlab.fr’, ‘http://localhost/coiffure’)
WHERE option_name = ‘home’ OR option_name = ‘siteurl’
Si tu as bien sélectionné ta base de données au début tu n’as pas besoin d’écrire « coiffure. », c’est inutile.
Voilà en espérant que ces précisions t’aideront pour résoudre ton souci.
Bon courage !