Il peut arriver que vous deviez déplacer WordPress au sein de votre serveur, ou parfois vers un autre serveur. WordPress est suffisamment flexible pour supporter toutes ces situations.
Déplacement vers un nouveau serveur
Si vous déplacez WordPress d’un serveur à un autre, commencez par sauvegarder votre répertoire WordPress, vos images, extensions et autres fichiers sur votre site ainsi que la base de données. Voir les articles Sauvegarder votre site WordPress et Sauvegarder votre base de données.
Conserver votre nom de domaine et vos URL
Déplacer votre domaine, sans changer l’adresse web de WordPress (URL du site), ni l’adresse web du site (URL de la page d’accueil) de votre installation WordPress, est très simple et, dans la plupart des cas, peut être fait en déplaçant les fichiers.
- Si la base de données et les URL restent les mêmes, vous pouvez déplacer WordPress en copiant simplement vos fichiers et votre base de données.
- Si le nom de la base de données (ou son identifiant/mot de passe) change, modifiez le fichier wp‑config.php pour avoir les valeurs correctes.
- Si vous voulez tester avant de changer, vous devez temporairement changer
siteurl
ethome
dans la tablewp_options
de la base de données (via phpMyAdmin ou similaire). - Si vous aviez n’importe quel type de configuration de réécriture (permaliens), vous devez désactiver le fichier
.htaccess
et reconfigurer les permaliens quand il sera mis en ligne. Il suffit pour cela de renommer le fichier.htaccess
via votre logiciel Client FTP.
Modification de votre nom de domaine et de vos URL
Déplacer un site web et modifier votre nom de domaine ou vos URL (c’est-à-dire de https://example.com/site vers https://example.com, ou https://example.com vers https://example.net) nécessite les étapes suivantes, dans cet ordre :
- Téléchargez vos fichiers du site existant.
- Exportez votre base de données – accédez à MySQL et exportez la base de données.
- Déplacez les fichiers et la base de données sauvegardés dans un nouveau dossier – dans un endroit sûr – c’est la sauvegarde de votre site.
- Connectez-vous au site que vous souhaitez déplacer et accédez à l’écran Réglages généraux via Réglages, Général, puis modifiez les URL, (c’est-à-dire de https://example.com/ vers https://example.net) – enregistrez les réglages et attendez-vous à voir une page 404.
- Téléchargez à nouveau les fichiers de votre site.
- Exportez à nouveau la base de données.
- Modifiez le fichier wp-config.php avec le nom (
DB_NAME
), l’utilisateur (DB_USER
) et le mot de passe (DB_PASSWORD
) de la base de données MySQL du nouveau serveur. Vérifiez aussi le nom d’hôte (DB_HOST
) du serveur. - Téléversez les fichiers.
- Importez la base de données sur le nouveau serveur.
Lorsque votre nom de domaine ou vos URL changent, des problèmes supplémentaires se posent. Les fichiers et la base de données peuvent être déplacés, mais les références à l’ancien nom de domaine ou à l’ancien emplacement resteront dans la base de données, ce qui peut entraîner des problèmes avec les liens ou l’affichage du thème.
Si vous effectuez un « rechercher-remplacer » sur l’ensemble de votre base de données pour modifier les URL, vous pouvez provoquer des problèmes de sérialisation des données, du fait que certains thèmes et widgets stockent des valeurs incluant la longueur de votre URL. Quand la longueur de l’url change, les choses se cassent.
Exemple : $array = array( ‘url’ => ‘https://example.com/site’ );
qui une fois sérialisée devient :a:1:{s:3: »url »;s:24: »https://
example.com/site
»;}
où s24
est le nombre de caractères composant l’URL.
Si nous modifions l’url vers https://exemple.net
, l’url ne comportera plus que 19 caractères.
Pour éviter ce problème de sérialisation, vous avez trois options :
- Utilisez l’extension Velvet Blues Update URL ou Better Search Replace si vous pouvez accéder à votre tableau de bord.
- Utilisez WP-CLI’s search-replace si votre hébergeur (ou vous) avez installé WP-CLI.
- Utilisez Search and Replace for WordPress Databases Script pour modifier en toute sécurité toutes les instances de votre ancien domaine ou le chemin vers votre nouveau (n’utilisez cette option que si vous êtes à l’aise avec l’administration de bases de données).
Note : effectuez un « rechercher-remplacer » uniquement sur la table wp_posts
.
Note : Search and Replace de Interconnectit est un script tiers.
Déplacement de répertoires sur votre serveur existant
Déplacer les fichiers WordPress d’un emplacement sur votre serveur à un autre – c’est-à-dire changer son URL – nécessite une attention particulière. Si vous souhaitez déplacer WordPress vers son propre dossier, mais le faire fonctionner à partir de la racine de votre domaine, veuillez lire Donner à WordPress son propre répertoire pour des instructions détaillées.
Voici les instructions étape par étape pour déplacer votre site WordPress vers un nouvel emplacement sur le même serveur :
- Créez le nouvel emplacement en utilisant une de ces deux options :
- Si vous déplacez les fichiers du cœur de WordPress vers un nouveau répertoire, créez ce nouveau répertoire.
- Si vous souhaitez déplacer WordPress à la racine de votre serveur, assurez vous que tous les fichiers
index.php
, .htaccess
et les autres fichiers qui pourraient être écrasés sont sauvegardés et/ou déplacés, et que la racine du serveur est prête à accepter les nouveaux fichiers WordPress.
- Connectez-vous sur votre site.
- Allez à l’écran Réglages généraux accessible via le Tableau de bord puis, Réglages, Général.
- Dans le champ Adresse web de WordPress (URL) : saisissez l’adresse du nouvel emplacement de vos principaux fichiers du cœur de WordPress.
- Dans la zone de saisie Adresse web du site (URL) : saisissez l’adresse du nouvel emplacement, qui devrait correspondre à l’adresse publique de votre site WordPress.
- Cliquez sur le bouton Enregistrer les modifications.
- (N’essayez pas d’ouvrir/voir votre site maintenant !)
- Déplacez vos fichiers du cœur de WordPress vers le nouvel emplacement. Cela inclut les fichiers se trouvant dans le répertoire original, tel que
http://example.com/wordpress
, et tous les sous-répertoires. - Maintenant, essayez d’ouvrir votre site en allant sur
votredomaine.com/wp-admin
. Notez que vous devrez peut-être vous rendre survotredomaine.com/wp-login.php
. - Si vous utilisez des Permaliens, allez à l’écran Réglages des permaliens, accessible via le Tableau de bord puis Réglages, Permaliens et mettez à jour la structure de vos permaliens dans votre fichier
.htaccess
, qui devrait se trouver dans le même répertoire que le fichierindex.php
principal. - Les médias téléchargés existants et les liens s’y rapportant se réfèrent à l’ancien dossier et doivent être mis à jour avec le nouvel emplacement. Vous pouvez le faire avec les extensions Better Search Replace ou Velvet Blues Update URLs, la WP-CLI’s search-replace si votre fournisseur d’hébergement (ou vous) avez installé WP-CLI, manuellement dans votre base de données SQL ou en utilisant le script tiers Search and Replace Databases (Note : ce script est plus adapté aux personnes expérimentées).
- Dans certains cas, vos autorisations peuvent avoir changé, en fonction de votre FAI. Surveillez tous les fichiers avec les autorisations 0000 et modifiez-les à nouveau en 0644.
- Si votre thème prend en charge les menus, les liens vers votre page d’accueil peuvent toujours contenir l’ancien sous-répertoire. Depuis le Tableau de bord, accédez à Apparence puis Menus et mettez-les à jour.
- Parfois, vous devrez redémarrer votre serveur, sinon votre serveur peut donner une erreur. (Cela se produit dans le logiciel MAMP – sous Mac).
Il est important que vous définissiez les emplacements URI AVANT de déplacer les fichiers.
Si vous avez oublié de changer les emplacements
Si vous avez accidentellement déplacé les fichiers avant de modifier les URI, vous avez deux options :
- Supposons que les fichiers se trouvaient à l’origine dans
/chemin/vers/ancien/
et que vous les ayez déplacés vers/chemin/vers/nouveau
avant de modifier les URI. La façon de résoudre ce problème serait de créer un lien symbolique/chemin/vers/ancien/
(pour les utilisateurs de Windows, « lien symbolique » équivaut à « raccourci ») vers/chemin/vers/nouveau/
, c’est-à-direln -s /chemin/vers/nouveau /chemin/vers/ancien
puis suivez les étapes ci-dessus comme d’habitude. Ensuite, supprimez le lien symbolique si vous le souhaitez. - Si vous avez oublié de modifier l’adresse web de WordPress et l’adresse web du site, vous ne pourrez pas les modifier à l’aide de l’interface WordPress. Cependant, vous pouvez le réparer si vous avez accès à la base de données. Accédez à la base de données de votre site et recherchez la table
wp_options
. Cette table stocke toutes les options que vous pouvez définir dans l’interface. L’adresse web de WordPress et l’adresse web du site sont stockées en tant quesiteurl
ethome
(champoption_name
). Tout ce que vous avez à faire est de remplacer le champoption_value
par l’URL correcte pour les lignes avecoption_name=’siteurl‘
ouoption_name=’home‘
.
Note : parfois, l’adresse web de WordPress et l’adresse web du site sont stockées dans des transients WordPress. Les scripts de recherche et de remplacement peuvent avoir du mal à les modifier à la nouvelle adresse et certaines extensions peuvent donc faire référence à l’ancienne adresse à cause d’eux. Les transients sont des valeurs temporaires (mises en cache), stockées dans la table wp_options
de la base de données, qui peuvent être recréées à la demande une fois supprimées. Il est donc prudent de les supprimer de la copie de la base de données migrée et de les recréer. Cette requête de base de données (encore une fois, ayez une sauvegarde !) efface tous les transients :
DELETE FROM `wp_options` WHERE option_name LIKE '%\_transient\_%'
Si vous avez accidentellement modifié l’URL de votre site WordPress
Supposons que vous ayez accidentellement changé les URI de sorte que vous ne puissiez pas déplacer les fichiers (mais pouvez toujours accéder à la page de connexion, via une redirection ou autre).
wp-login.php
peut être utilisé pour définir (ou réinitialiser) les URI.
Trouvez cette ligne :
require( dirname(__FILE__) . '/wp-load.php' );
et insérez les lignes de code suivantes en-dessous de cette ligne :
//Commentez/supprimez ces lignes une fois que la base de données sera mise à jour update_option('siteurl', 'http://your.domain.name/chemin' ); update_option('home', 'http://your.domain.name/chemin' );
Allez sur la page d’accueil de votre site, cela exécutera ces instructions. Vous pouvez ensuite commenter/supprimer les lignes de code précédemment ajoutées.
Vous avez terminé. Testez votre site pour vous assurer qu’il fonctionne correctement. Si le changement implique une nouvelle adresse pour votre site, assurez-vous d’informer les internautes de la nouvelle adresse et envisagez d’ajouter des instructions de redirection dans votre fichier .htaccess
pour guider les visiteurs vers le nouvel emplacement.
L’article Modification de l’URL du site fournit également les détails de ce processus.
Gérer votre ancien site
Le mettre à l’arrêt
- Téléchargez une copie des principaux fichiers WordPress de votre ancien site sur votre disque dur et modifiez le fichier wp-config.php en fonction du nouveau serveur.
- Revenez à votre ANCIEN site et allez dans l’écran Réglages généraux via votre Tableau de bord, puis Réglages, Général et remplacez les URL (les deux) par celle de votre nouveau site.
- Connectez-vous sur votre serveur, accédez à phpMyAdmin, exportez votre base de données en tant que fichier pour la sauvegarder (mais gardez l’ancienne au cas où). Maintenant, téléversez cette nouvelle base de données et la copie des fichiers du cœur de WordPress avec le fichier
wp-config.php
modifié sur votre nouveau serveur. C’est tout !
Le conserver en marche
Attention : assurez-vous d’avoir une sauvegarde de la base de données WordPress de votre ancien site avant de continuer !
Partie A – Activer votre nouveau site
- Téléchargez l’intégralité de votre installation WordPress sur votre disque dur. Nommez le dossier de manière appropriée pour indiquer qu’il s’agit de l’installation de votre ANCIEN site.
- Téléchargez votre base de données.
- Revenez sur votre ANCIEN site, accédez aux options et changez l’url (les deux) par celle de votre nouveau site.
- Encore une fois, téléchargez l’intégralité de votre installation WordPress sur votre disque dur. Nommez le dossier de manière appropriée pour indiquer qu’il s’agit de l’installation de votre NOUVEAU site.
- Téléchargez à nouveau votre base de données (mais gardez l’ancienne). Téléchargez cette base de données sur votre nouveau serveur. Ce sera plus simple si vous utilisez le même nom de base de données et que vous créez un utilisateur avec les mêmes informations de connexion sur votre nouveau serveur que sur votre ancien serveur.
- Si vous avez utilisé un nom de base de données et/ou un nom d’utilisateur différent (voir l’étape précédente), modifiez le fichier wp-config.php dans le dossier d’installation de votre NOUVEAU site.
- Téléversez le dossier d’installation du NOUVEAU site sur votre nouveau site. Votre NOUVEAU site devrait fonctionner !
Partie B – Restauration de votre ancien site
- Sur le serveur d’origine, supprimez la base de données de votre ANCIEN site (rappelez-vous, vous devriez avoir une copie sur votre ordinateur local que vous avez faite au tout début).
- Téléversez le dossier d’installation de votre ancien site sur votre serveur d’origine, en écrasant les fichiers qui s’y trouvent actuellement (vous pouvez également supprimer le dossier d’installation sur le serveur et simplement re-téléverser les fichiers de l’ancien site).
- Téléversez la base de données de votre ancien site depuis votre ordinateur local vers le serveur. Ça devrait le faire !
Une autre procédure facile à suivre pour faire des copies des publications, commentaires, pages, catégories et de champs personnalisés (état de publication, données, permaliens, statut de ping, etc.) :
- Installer un nouveau site WordPress.
- Connectez-vous au tableau de bord de l’ancien site. Allez dans Outils puis Exporter, sélectionnez Tout le contenu.
- Cliquez sur Télécharger le fichier d’exportation.
- Dans le tableau de bord du nouveau site, allez sur Outils puis Importer, choisissez l’élément WordPress. Cliquez sur Installer maintenant pour installer l’outil d’importation, ou cliquez sur Lancer l’outil d’importation (s’il est déjà installé).
- Dans la page Importation depuis WordPress, sélectionnez le fichier que vous venez d’exporter. Cliquez sur Téléverser et importer le fichier.
- Une fois l’import effectué, choisissez d’importer les comptes ou d’attribuez les publications aux comptes qui existent déjà ou créez-en de nouveaux.
- Cliquez sur Envoyer.
- À la fin, cliquez sur le lien Amusez-vous bien.
Note : en utilisant cette méthode, s’il y a des articles dans le nouveau site (comme « Hello World », etc.), ceux-ci ne seront pas effacés. Les articles sont seulement ajoutés. En utilisant la procédure précédente, les articles du nouveau site seront supprimés.
Déplacer un WordPress multisite
Un réseau multisite est un peu plus compliqué à déplacer, car la base de données elle-même contient de multiples références au nom du serveur ainsi qu’aux emplacements des répertoires. Si vous passez simplement à un nouveau serveur avec le même nom de domaine, vous pouvez copier les fichiers et la base de données, exactement comme vous le feriez pour une installation traditionnelle.
Si, à la place, vous changez de domaine, la meilleure façon de déplacer un réseau multisite est de déplacer les fichiers, puis de modifier les fichier .htaccess
et wp-config.php
(si le nom du répertoire contenant le multisite a changé), et ensuite de modifier manuellement la base de données. Recherchez toutes les occurrences de votre nom de domaine et modifiez-les si nécessaire. Cette étape ne peut pas encore être facilement automatisée. Vous pouvez effectuer un « rechercher-remplacer » pour n’importe quelle table wp_x_posts
en toute sécurité, mais n’essayez pas d’effectuer un « rechercher-remplacer » global sans le script d’Interconnectit Search and Replace for WordPress Databases script.
Si vous déplacez un réseau multisite d’un dossier à un autre, vous devrez vous assurer de modifier les entrées wp_blogs
pour modifier correctement le nom du dossier. Vous devez vérifier manuellement à la fois wp_site
et wp_blogs
pour vous assurer que tous les sites ont été modifiés correctement.
En outre, examinez manuellement toutes les tables wp_x_options
, recherchez trois champs et modifiez-les si nécessaire :
home
siteurl
fileupload_url
Si vous passez de sous-domaines à des sous-dossiers, ou vice-versa, n’oubliez pas d’ajuster le fichier .htaccess
et la valeur de SUBDOMAIN_INSTALL
dans votre fichier wp-config.php
en conséquence.
Liens en relation
- L’extension Duplicator (permet de migrer, copier ou cloner un site WordPress)
- Search and Replace for WordPress Databases (en anglais)
- Comment déplacer un site WordPress manuellement (et sans risques)
- Comment migrer son WordPress en local vers un hébergeur ?
- Déplacer WordPress vers un nouveau nom de domaine
Traduit par Patrice Pichon & Jenny Dupuy
Relu par Jenny Dupuy & Jb Audras
Dernière mise à jour le 5 juin 2021