Comment migrer un sous-site d'un multisite de développement vers un multisite de production

12

Je recherche le moyen le plus sûr et le meilleur de développer localement un certain nombre de sous-sites en utilisant le multisite et de les déplacer vers l'environnement de production lorsqu'ils sont prêts.

J'ai déjà migré l'installation multisite complète avec le premier sous-site qui est maintenant en ligne. Je préférerais développer les autres sites sur le serveur local donc je laisse le serveur de production tranquille mais évidemment je ne peux pas refaire une migration complète.

J'ai cherché une solution mais tout ce que j'ai trouvé concerne le déplacement d'un site unique vers un multisite ou l'inverse, pas de "déplacement de sous-site de multisite vers multisite".

Je voudrais tout garder: paramètres, widgets, etc.

molokom
la source
1
Je pense que le plugin BackupBuddy commercial est capable de le faire, mais je serais intéressé à voir des réponses plus génériques à cela.
Rarst
En raison des chaînes sérialisées dans la base de données, ce n'est pas si facile à faire. Je n'ai pas vu de plugin pour une migration pure jusqu'à présent, mais c'est absolument quelque chose qui devrait être fait. Le seul problème était de déplacer "la plupart" des parties d'un blog vers un autre via le mécanisme d'exportation / importation XML, mais vous devez encore corriger de nombreux chemins par la suite.
2ndkauboy
1
La meilleure option que vous avez est de le faire avec une requête SQL directe. Je l'ai fait plus d'une fois, et cela fonctionne très bien si vous êtes assez prudent.
krembo99
@ krembo99, pourriez-vous expliquer un peu plus votre technique?
molokom
@Rarst, en ce qui concerne BackupBuddy, cela provient de leur FAQ: "Non. La prise en charge de BackupBuddy Multisite est expérimentale. Elle n'est pas recommandée pour les sites de production et n'est pas officiellement prise en charge."
molokom

Réponses:

4

Cela peut être quelque peu fastidieux, mais j'espère que cela aide. Moins cela change d'un environnement à l'autre, moins ce processus sera douloureux. En particulier, si le domaine, l'ID du site et les chemins d'accès aux fichiers restent les mêmes, ce processus sera moins pénible.

Ce post suppose une certaine connaissance de la gestion de base de données. Ce n'est pas une étape complète, car vous devez rechercher dans les forums et éventuellement créer un thread spécifique à l'étape avec laquelle vous rencontrez des problèmes, par exemple, si vous avez besoin d'aide pour exporter une table de base de données.

La chose la plus importante à faire est de sauvegarder l'intégralité de votre base de données et de vos fichiers pour le site de développement local et le nouvel emplacement en cas de problème. Attendez-vous à ce que quelque chose tourne mal. Soyez agréablement surpris si ce n'est pas le cas.

Le déplacement de vos fichiers de thème devrait être assez simple. Téléchargez vos fichiers de thème dans le répertoire wp-content / themes et activez-le comme d'habitude. Je suppose que c'est un thème partagé auquel tous les blogs ont accès.

Téléchargez les fichiers de plug-in vers wp-content / plugins au nouvel emplacement. Ne les activez pas encore.

Notez que tout contenu exclusif au blog que vous migrez sera situé dans un répertoire qui ressemble à l' wp-content/blogs.dir/2/filesendroit où 2 est l'ID du site. S'il est possible de conserver cet ID de site au nouvel emplacement, cela devrait aider à minimiser les conflits dans la base de données après la migration vers le nouvel emplacement. Sinon, vous devrez mettre à jour votre base de données pour refléter le nouveau chemin.

Vous devrez exporter les tables multisites liées au blog que vous essayez de migrer et les importer vers le nouvel emplacement. Vous devrez modifier les tableaux qui stockent les données liées au blog que vous migrez. Assurez-vous que le préfixe de ces tables est le même au nouvel emplacement.

Par exemple, la table wp_blogs de votre blog contient l'ID de blog, l'ID de site, le domaine et le chemin d'accès qui permettent à WordPress multisite de reconnaître et de travailler avec votre blog. Modifiez tous ceux qui ne sont plus corrects pour refléter le nouvel emplacement, mais veuillez lire le reste de cet article avant d'essayer de le faire.

Voir Présentation de la table multisite

Pour migrer vos paramètres WordPress et plugin pour le blog à transférer , vous devrez désactiver tous les plugins localement, puis exporter les tableaux spécifiques à votre site (référence codex), y compris ceux pour vos plugins. Importez ces tables dans la base de données du nouvel emplacement.

Assurez-vous que le nouvel emplacement utilise le même préfixe de base de données que les tables que vous importez. Le préfixe contiendra l'identifiant du site pour votre blog et ressemblera à quelque chose wp_2_options, wp_2_posts, wp_2_postmeta.
Voir Explorer WordPress Multisite par Lisa Sabin-Wilson

Je suppose que vous savez comment importer / exporter via phpmyAdmin ou avec la commande mysqldump dans votre terminal. C'est un peu au-delà de la portée de cet article, mais voici un exemple d'exportation qui devrait vous aider.

De Comment faites-vous pour mysqldump des tables spécifiques? (Syntaxe modifiée légèrement pour être plus claire.):

Si vous videz les tables t1, t2 et t3 de la base de données nommée mydb

mysqldump -u <username> -p <password> mydb t1 t2 t3 > mydb_tables.sql

Avant d'activer les plugins sur le nouveau site, accédez à vos paramètres de permalien dans admin cp et enregistrez les paramètres pour mettre à jour les fichiers de base de données vers la nouvelle URL du site. Activez vos plugins et voyez s'il y a des problèmes.

Un problème que vous pouvez rencontrer concerne la sérialisation des données dans vos tables.

"[...] Les références à l'ancien nom de domaine ou 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 une recherche et remplacez sur toute votre base de données pour modifier les URL, vous pouvez provoquer des problèmes avec la sérialisation des données, car certains thèmes et widgets stockent des valeurs avec la longueur de votre URL marquée. " Lorsque votre nom de domaine ou URL Changement

Gardez à l'esprit que la sérialisation des données peut également provoquer un conflit dans les tables de base de données relatives à vos plugins. Plutôt que d'effectuer une recherche et un remplacement manuels sur l'url stockée dans la base de données, utilisez le script de recherche et de remplacement de base de données recommandé dans le lien codex précédent. S'il n'y a que quelques instances de sérialisation dans la base de données, vous pouvez simplement les modifier manuellement via phpMyAdmin ou quelle que soit votre préférence pour la gestion de votre base de données.

Un autre problème que vous pouvez rencontrer est que tout chemin de fichier incorrect stocké dans les tables de base de données devra être mis à jour pour refléter le nouvel emplacement. Cela pourrait être le cas pour les répertoires multimédias ou les répertoires utilisés par les plugins selon la façon dont le plugin a été conçu. Encore une fois, vous souhaiterez utiliser le script de recherche et de remplacement pour vous assurer qu'il n'y a pas de conflits de sérialisation lors de la mise à jour des chemins d'accès aux fichiers. Alternativement, vous pouvez parcourir vos tableaux et les mettre à jour manuellement.

iyrin
la source
Merci! Il semble donc qu'il n'y ait aucun avantage réel à travailler de cette façon: c'est un sac de mal. Il vaudrait mieux développer un site unique local et migrer dans l'environnement multisite?
molokom
Vous pouvez rencontrer beaucoup des mêmes problèmes, mais cela devrait nécessiter moins de tables que vous devez migrer. Juste pour vous donner une idée, voici un guide décent pour cela appelé Déplacer un blog existant vers WordPress Multi-Site . Je vous laisse le soin de déterminer ce qui est le plus efficace pour vous en tant que développeur.
iyrin
0

Ne pourriez-vous pas utiliser les fonctionnalités intégrées d'exportation et d'importation de WordPress? Ensuite, il suffit de déplacer le thème d'une installation à l'autre via FTP. Cela va assez rapidement et vous pouvez migrer un site entre les installations en moins de 5 minutes.

Vous pouvez synchroniser les informations d' identification d'utilisateur à l' aide d' un plug - in très pratique , appelé utilisateur Syncronization .

Je ne l'ai pas utilisé, mais ManageWP dispose d'un outil de déploiement et de clonage convivial pour passer d'un site existant à un nouveau ... cela vaut la peine d'être étudié.

NW Tech
la source