Déplacer son site wordpress

Déplacer un site en ligne vers un site local

Cette procédure vaut lorsque l’on a un client qui souhaite des améliorations ou modifications sur son site en ligne. Pour ne pas commettre d’erreurs sur son site live, on va donc transférer tout son site ( ftp + base de donnée) en local.

On va alors avoir besoin des informations suivantes:

  • les identifiants ftp pour pouvoir récupérer le dossier global du site
  • la base de donnée du site

Création du site en local

On crée un dossier vide du même nom sur son serveur local, soit wamp/www, xampp/htdocs etc.

A partir de Filezilla ou tout autre client FTP, on sélectionne tout le site en ligne à l’intérieur du dossier www (à droite sur l’image:  tous les dossiers au niveau de wp-admin, wp-content, wp-include ainsi que tous les fichiers php, htaccess.. etc), et on transfère le tout par glisser-déposer dans le dossier précédemment crée.

Capture

Modification du fichier wp-config

Une fois le site téléchargé, on prend le fichier wp-config importé et on modifie les informations d’accès à la base de donnée :

Capture1
On change le nom de la base, le nom du serveur, le nom d’utilisateur et mot de passe du site en ligne pour les remplacer par nos données locales: typiquement « nom de la base » (si possible le même que celui en ligne), ‘root’ pour l’utilisateur, rien pour le mot de passe ( à moins d’en avoir un spécifique pour accéder à ses bases en local) et le nom de serveur : ‘localhost’.

Capture2

Création de la base de donnée

Puis dans Phmyadmin, on crée notre base de donnée, et on y importe le fichier sql que le client nous a laissé.

Une fois importée, on clique sur l’onglet SQL et on tape les requêtes suivantes:

  • Changer l’URL du site
    UPDATE wp_options
    SET option_value = replace(option_value, ‘http://www.ancien-site.com’, ‘http://localhost/nouveau-site.com’)
    WHERE option_name = ‘home’
    OR option_name = ‘siteurl’;
  • Changer l’URL des GUID
    UPDATE wp_posts
    SET guid = REPLACE (guid, ‘http://www.ancien-site.fr’, ‘http://localhost/nouveau-site.fr’);
  • Changer l’URL des médias dans les articles et pages
    UPDATE wp_posts
    SET post_content = REPLACE (post_content, ‘http://www.ancien-site.fr’, ‘http://localhost/nouveau-site.fr’);
  • Changer l’URL des données meta
    UPDATE wp_postmeta
    SET meta_value = REPLACE (meta_value, ‘http://www.ancien-site.com’,’http://localhost/nouveau-site.com’);

Ces requêtes vont changer tous les url du site en ligne par l’url de votre nouveau site local, et suffisent à faire fonctionner votre site en version locale. On retourne alors dans le backoffice de son site et on applique ou on réenregistre les permaliens.

Ces requêtes proviennent d’un site qui est resté longtemps en première position sur google, lorsqu’on tapait comme recherche « dépacer wordpress requêtes sql » par exemple. Aujourd’hui, une page du talentueux développeur wp Misha est passé devant, tout comme une page du célèbre site CSS Tricks.

Misha a carrément développé une interface qui remplace le script proposé plus bas (search and replace d’Interconnectit) et fait le job pour vous. Insérez l’url du site live par celui du site en local. Et cela va vous générer automatiquement toutes les requêtes SQL à effectuer pour n’oublier aucune table.

UPDATE wp_options SET option_value = REPLACE(option_value, 'https://votreanciensite.com/', 'http://votreNouveauSite.fr') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE (post_content, 'https://votreanciensite.com/', 'http://votreNouveauSite.fr');
UPDATE wp_posts SET post_excerpt = REPLACE (post_excerpt, 'https://votreanciensite.com/', 'http://votreNouveauSite.fr');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'https://votreanciensite.com/','http://votreNouveauSite.fr');
UPDATE wp_termmeta SET meta_value = REPLACE (meta_value, 'https://votreanciensite.com/','http://votreNouveauSite.fr');
UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'https://votreanciensite.com/', 'http://votreNouveauSite.fr');
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'https://votreanciensite.com/','http://votreNouveauSite.fr');
UPDATE wp_posts SET guid = REPLACE (guid, 'https://votreanciensite.com/', 'http://votreNouveauSite.fr') WHERE post_type = 'attachment';
Requête SQL pour déplacer son site wp

L’interface fonctionne évidemment pour tout déplacements de site, quelque soit les url de départ et d’arrivée.

Aller plus loin avec Search and Replace

Pour vraiment modifier tous les url restants, je vous conseille l’utilisation de search and replace de interconnect it.

Téléchargez le dossier search and replace. Dézipper et rentrer dans le dossier dézippé. Renommez le dossier à l’intérieur en quelque chose de simple, du genre : « search ». déplacer son site wordpress

Placez ce dossier à la racine de votre wordpress local, au même niveau que wp-content, wp-admin etc.

déplacer son site wordpress

Maintenant, dans la barre de recherche internet,  tapez l’adresse locale de votre site, suivi du nom du dossier « search » : http://localhost/monsite/search

Renseignez l’ancienne adresse du site en live, puis celle du site en local, sans slash à la fin

Cliquez enfin sur « Live Run« .

Cela va modifier tous les url restants ! Une fois terminé, supprimez le dossier search de votre wordpress. Votre site est prêt en local, avec les bons url !!

Déplacer son site local travaillé vers le site en ligne.

Pour déplacer son site local vers le site en ligne, c’est la même procédure, dans le sens inverse !

Déplacer son dossier wordpress de localhost vers le site live

On ouvre son client FTP. On transfère tout son dossier wordpress du localhost (à gauche) vers la racine de l’url en ligne (à droite)

Capture

Modification du fichier wp-config

On modifie le fichier wp-config et on renseigne les bonnes infos du site live

Capture2

On met le nom de la base live, le mot de passe, le nom d’utilisateur et le host. Toutes ces informations vous sont transmises soit par le client, soit vous les avez reçues de votre hébergeur.

Mise à jour de la base de donnée

Sur PhpMyadmin du site local, on exporte sa base de donnée. Pas besoin de toucher au fichier. Sur le PhpMyadmin du site live, on crée la base, ou si elle est déjà créée, on clique sur importer, et on importe la base de donnée. Si tout se passe bien, une ligne verte s’affiche pour dire que l’importation s’est bien déroulée.

Une fois importée, on clique sur l’onglet SQL et on tape les requêtes suivantes:

  • Changer l’URL du site
    UPDATE wp_options
    SET option_value = replace(option_value, ‘http://localhost/ancien-site’, ‘http://www.nouveau-site.com’)
    WHERE option_name = ‘home’
    OR option_name = ‘siteurl’;
  • Changer l’URL des GUID
    UPDATE wp_posts
    SET guid = REPLACE (guid, ‘http://localhost/ancien-site’, ‘http://www.nouveau-site.com’);
  • Changer l’URL des médias dans les articles et pages
    UPDATE wp_posts
    SET post_content = REPLACE (post_content, ‘http://localhost/ancien-site’, ‘http://www.nouveau-site.com’);
  • Changer l’URL des données meta
    UPDATE wp_postmeta
    SET meta_value = REPLACE (meta_value, ‘http://localhost/ancien-site’, ‘http://www.nouveau-site.com’);

Ici aussi, vous pouvez très bien utiliser l’interface de Misha.

Ces requêtes vont remplacer tous les « localhost » par votre nouveau nom de domaine. On va dans le backoffice de son site live et on applique ou on réenregistre les permaliens.

Aller plus loin avec Search and Replace

Pour vraiment modifier tous les url restants, je vous conseille là aussi l’utilisation de search and replace de interconnect it.

Téléchargez le dossier search and replace. Dézippez et rentrez dans le dossier dézippé. Renommez le dossier à l’intérieur en quelque chose de simple, du genre : « search ». déplacer son site wordpress

Placez ce dossier à la racine de votre wordpress en ligne, au même niveau que wp-content, wp-admin etc.

déplacer son site wordpress

Maintenant, dans la barre de recherche internet,  tapez le nom de domaine de votre site, suivi du nom du dossier « search » : http://www.monsite.com/search

Renseignez l’ancienne adresse du site local, puis celle du site live, sans slash à la fin

Cliquez enfin sur « Live Run« .

Cela va modifier tous les url restants ! Une fois terminé, supprimez le dossier search de votre wordpress. Votre site est prêt en live, avec les bons url !!

Déplacer un site www.site.com/site vers www.site.com

La procédure est la aussi la même : on déplace tous nos fichiers via ftp à partir du sous dossier site.com/site au niveau de la racine www.

Le sous-dossier vidé, on peut le supprimer.

Dans la base de donné, on effectue les requêtes SQL pour modifier les liens et le tour est joué!!

Pas la peine de modifier quoique ce soit dans le backoffice de wordpress au niveau des réglages puisque les requêtes SQL se chargent de tout.

 

Inteconnect It et Yoast SEO

Si vous importez ou déplacez un site contenant le plugin Yoast, à l’utilisation du script search and replace vous obtiendrez certainement un message d’erreur. Voici les requêtes SQL à insérer via PhpMyAdmin, dans l’onglet SQL de votre base de donnée

DELETE FROM wp_postmeta WHERE meta_key = '_yoast_wpseo_focuskw';

DELETE FROM wp_postmeta WHERE meta_key = '_yoast_wpseo_metadesc';

DELETE FROM wp_postmeta WHERE meta_key = '_yoast_wpseo_title';

DELETE FROM wp_postmeta WHERE meta_key = '_yoast_wpseo_canonical';

DELETE FROM wp_postmeta WHERE meta_key = '_yoast_wpseo_redirect';

Ces requêtes proviennent de ce site, mais visiblement ne suffisent pas à éradiquer toutes les données enregistrées par le plugin. Le supprimer du dossier plugin ne suffit pas non plus, Selon le site de Yoast lui même, il faut rechercher manuellement toutes les occurrences des données suivantes et les supprimer.

  • wp_yoast_indexable
  • wp_yoast_indexable_hierarchy
  • wp_yoast_migrations
  • wp_yoast_primary_term
  • wp_yoast_prominent_words
  • wp_yoast_seo_links
  • wp_yoast_seo_meta

A savoir quand même, le message d’erreur généré sur search and replace n’empêche pas la moulinette de fonctionner jusqu’au bout. En plus de search and replace vous pourrez donc appliquer les requêtes SQL obtenues sur le site de Misha.

Bon courage !!