Migrer un blog WordPress d’un réseau multisite vers une installation individuelle

Il arrive parfois qu’on ait besoin d’extraire un blog WordPress d’un réseau multisite afin de lui attribuer une installation propre et autonome. Cela arrive notamment lorsque le blog en question nécessite trop de personnalisation, qu’il n’entre plus dans le cadre de votre réseau multisite, ou tout simplement parce que vous souhaitez le léguer ou le vendre à quelqu’un.

S’il est possible de migrer le blog avec l’outil d’export/import de WordPress, cette solution ne permettra pas de récupérer la base de données, les customisations du thème, les images, etc… Par conséquent, avec un simple import / export, vous devrez tout paramétrer à nouveau.

Je vous propose donc un petit guide afin de le faire manuellement et proprement, de façon a véritablement migrer votre site de A à Z sans perdre une miette de ce dernier.

Sauvegardez votre réseau Multisite

Il existe beaucoup de plugins WordPress de backup. Choisissez celui qui vous convient le mieux afin de sauvegarder tout votre réseau.

Par ailleurs, sauvegardez manuellement votre réseau en téléchargeant tout ce qui se trouve sur votre serveur via FTP et en téléchargeant une sauvegarde de votre base de données dans phpMyAdmin.

 

Exportez votre site WordPress

Trouvez l’ID du blog que vous souhaitez extraire

Avant de pouvoir extraire votre base de données, vous devez connaître l’ID de votre site enfant, puisque le site que vous souhaitez migrer fait partie d’un ensemble de sites. Rendez-vous dans « Mes Sites > Admin du réseau > Tableau de bord », et l’ID de chaque site s’affiche dans la colonne « ID » ou en cliquant dessus dans l’URL affichée sur votre barre d’adresse.

trouver-id-multisite-wordpress

 

Exportez seulement les tables liées au site WordPress que vous souhaitez migrer

Pour ce faire, rendez-vous dans PhpMyAdmin (votre hébergeur doit pouvoir vous donner un lien et les identifiants pour y accéder).

  • Cliquez sur « Export »
  • Méthode d’exportation : personnalisée
  • Sélectionnez seulement les tables contenant votre ID.
  • Si vous avez un grand nombre d’utilisateurs liés spécifiquement au site WordPress que vous souhaitez extraire, sélectionnez également les tables wp_users et wp_usermeta. Sinon, je vous conseille de recréer vos quelques utilisateurs manuellement sur votre installation nouvellement créée.
  • Enfin, cliquez sur « Exécuter ».

Un fichier SQL a normalement été téléchargé sur votre ordinateur. Copiez-le prudemment dans un nouveau dossier, et renommez-le en ajoutant « copie » dans son nom, afin de l’isoler.

 

Exportez les paramétrages de votre thème et de vos plugins

Si votre thème permet de sauvegarder vos paramétrages, ainsi que certains plugins, pensez à le faire afin de les réimporter si nécessaire dans la nouvelle installation.

 

Editez votre fichier SQL pour l’adapter à la future installation

Ouvrez le fichier de sauvegarde copié avec votre éditeur préféré (Notepad++ par exemple). Faites une recherche du nom de domaine de votre réseau, et remplacez toutes les occurrences par votre futur nom de domaine.

  • Si votre site enfant était dans un sous-répertoire, remplacez tous les http://monsite.monreseau.com par http://monsite.com
  • Si les URLs de vos sites enfants étaient sous cette forme-là : http://network.com/mysite, remplacez toutes ces URLs par « http://monsite.com »

Ensuite, il faut remplacer le préfixe de la base de données par un préfixe de blog individuel :

  • Remplacez tous les wp_XX_ (où XX est l’ID de votre site) par wp_ car votre nouvelle base de données sera individuelle, et les tables seront sous la forme wp_ et plus avec votre ID.

Enfin, lors de vos différents paramétrages de plugins ou de thèmes, il se peut que vous ayiez renseigné des URLS absolues renvoyant vers le dossier /wp-content/uploads/sites/XX, où XX est l’ID de votre site, et qui correspond au dossier de médias d’un site enfant contenu dans un réseau multisite. Il vous faut corriger cela :

  • Remplacez tous les /sites/12/ par /

Enregistrez le fichier.

 

Migrez votre site vers une nouvelle installation individuelle

Si cela n’est pas déjà fait, créez une nouvelle installation « single » de WordPress, là où vous souhaitez transférer le site extrait de votre réseau. Votre hébergeur vous communiquera les identifiants FTP afin de vous connecter à la nouvelle installation.

Uploadez les fichiers téléchargés depuis le FTP

Souvenez-vous, à l’étape 1, vous aviez téléchargé tout votre réseau de sites depuis le FTP. Tous vos fichiers sont donc à l’abri. Nous allons donc sélectionner parmi cette sauvegarde les fichiers qu’il vous faut réuploader sur la nouvelle install, à savoir :

a) Les extensions WordPress utilisées sur votre site extrait

  • Rendez-vous dans la page d’extensions de votre admin WordPress afin de lister les plugins activés que vous utilisez sur votre site.
  • Rendez-vous également dans la page d’extensions de votre réseau, afin de lister les plugins activés par défaut sur tout votre réseau !
  • Uploadez les extensions dont vous avez besoin à partir de deux listes établies ci-dessus. Ce sont les plugins actuellement utilisés sur votre site enfant, que vous avez normalement besoin de dupliquer sur votre nouveau site. En revanche, ne prenez pas en compte les plugins exclusivement créés pour du multisite (comme les plugins de domain mapping par exemple), qui ne vous serviront à rien en install individuelle.

b) Les thèmes liés à votre site exporté

Réuploadez sur votre nouvelle installation tous les thèmes potentiellement utilisés sur votre site enfant, et particulièrement le thème actif de votre site. Les thèmes se trouvent dans le dossier /wp-content/themes.

c) Les médias liés au site à migrer

Vous avez transféré les plugins et les thèmes, il vous reste les photos. Rendez-vous dans /wp-content/uploads/sites/XX, où XX est l’ID de votre site. Uploadez tous les fichiers et dossiers qui se trouvent à cet endroit-là, à destination du dossier /wp-content/uploads dans votre nouvelle installation. Veillez à ce que le dossier /uploads/ de votre nouvelle install soit vierge.

Si le dossier /uploads/ n’existe pas encore dans votre nouvelle install, créez-le et attribuez-lui un CHMOD de 755.

Votre blog contient maintenant à la fois les médias, mais aussi les fichiers thèmes et plugins de votre site source. Il reste désormais à transférer la base de données, qui contient tous les paramétrage et contenus du site que vous souhaitez extraire.

Importez la base de données

Rendez-vous dans le phpMyAdmin de votre nouvelle installation WordPress (l’install individuelle), afin de supprimer certaines tables que vous allez de toute manière importer. Et ce pour ne pas créer de doublons inutiles.

Voici les tables qu’il faut supprimer :

  • wp_commentmeta
  • wp_comments
  • wp_links
  • wp_options
  • wp_postmeta
  • wp_posts
  • wp_terms
  • wp_term_relationships
  • wp_term_taxonomy

Si vous aviez choisi d’exporter les tables wp_usermeta et wp_users, supprimez-les également avant l’import.

Pour supprimer ces tables, cliquez sur votre base de données à gauche, sélectionnez-les, et dans le menu déroulant en bas, choisissez « Supprimer ».

Cliquez ensuite sur « Importer », puis importez le fichier SQL que vous avez édité auparavant. Après ça, c’est terminé, votre site a bien été transféré depuis un multisite vers une installation individuelle !

Réglages de fin

Vérifiez que tout est OK. Normalement, le nom de domaine continue de pointer vers votre ancien serveur, celui de votre réseau multisite, mais vous pouvez consulter votre blog nouvellement créé depuis une URL fournie par votre hébergeur, par exemple « monblog.wpengine.com » si votre blog est hébergé chez WP Engine.

Si certaines images ne se chargent pas, vérifiez leur chemin d’accès; si leur URL pointe vers une url de ce type : monsite.com/wp-content/uploads/2015/01/mon-image.jpg, c’est que c’est bon signe. Vérifiez dans le répertoire en question, via votre FTP, que l’image existe bien, donc qu’elle a été uploadée au bon endroit. Si c’est le cas, elle apparaîtra lorsque vous aurez mis à jour l’URL de votre blog ainsi que les DNS de votre nom de domaine.

Si votre thème présente ses réglages par défaut, importez les options de l’ancien blog via l’outil d’import du thème, généralement proposé pour les thèmes premium. Idem pour certains plugins.

Si après cela, tout vous semble OK sur le site nouvellement créé, vous devrez normalement :

  • Mettre à jour les DNS du nom de domaine afin qu’il pointe vers le nouveau serveur. Votre hébergeur doit vous donner les informations afin de procéder à cela.
  • Dans l’admin de votre hébergeur (celui qui héberge votre nouvelle install), il faut généralement renseigner le nom de domaine utilisé pour celle nouvelle installation.
  • Dans les réglages généraux de WordPress, mettre à jour l’URL du nouveau site, en remplaçant l’URL de l’adresse web de WordPress et l’adresse web du site.

Après cela, votre nom de domaine devrait pointer vers la nouvelle installation. Pensez à supprimer ou désactiver le site enfant situé dans votre réseau multisite, mais seulement après quelques jours ou semaines, afin de le conserver en backup au cas où.

Une réponse

  1. Très bon article, c’est ce que je recherchais !
    Par contre je n’ai pas l’affichage des sous-sites sur la page en super-admin comme indiqué ?
    Je suppose que c’est similaire si on migre un sous-site d’un multisite vers un autre, à cela près qu’il faut remplacer le préfix « ancienprefix_wp_XX » par « nouveauprefix_wp_YY » car je n’ai qu’un hébergement avec une seule DB mais plusieurs domaines qui pointent vers des répertoires différents.
    Cdlt,

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.