web-dev-qa-db-fra.com

Comment migrer un sous-site de multisite dev en multisite de production

Je recherche le moyen le plus sûr et le plus sûr de développer localement un certain nombre de sous-sites utilisant plusieurs sites et de les transférer dans 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 actif. Je préférerais développer les autres sites sur le serveur local, je laisse donc le serveur de production seul, mais je ne peux évidemment pas effectuer une migration complète à nouveau.

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

Je voudrais tout garder: paramètres, widgets et ainsi de suite.

11
molokom

Cela peut être un 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’identifiant de site, les chemins de fichiers restent les mêmes, le processus sera moins pénible.

Cet article 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 fil de discussion spécifique à l’étape qui vous pose problème, 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 toute votre base de données et vos fichiers pour le site de développement local et le nouvel emplacement en cas de problème. Attendez-vous à ce que quelque chose se passe mal. Soyez agréablement surpris si ce n'est pas le cas.

Déplacer 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 normalement. Je suppose que c'est un thème partagé auquel tous les blogs ont accès.

Télécharger les fichiers du plugin dans 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 ressemblant à wp-content/blogs.dir/2/files, où 2 correspond à l'identifiant du site. S'il est possible de conserver cet ID de site au nouvel emplacement, cela devrait permettre de 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 associées au blog vous essayez de migrer et les importer dans le nouvel emplacement. Vous devrez modifier les tables contenant les données relatives 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'identifiant du blog, l'identifiant du site, le domaine et le chemin d'accès permettant à WordPress multisite de reconnaître votre blog et de l'utiliser. Modifiez l'un de 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 Vue d'ensemble de la table multisite

Pour migrer votre WordPress et les paramètres du plugin pour le blog à transférer , vous devrez désactiver tous les plugins localement, puis exporter votre tableaux spécifiques au site _ (référence du codex), y compris ceux de votre 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 de votre blog et ressemblera à wp_2_options, wp_2_posts, wp_2_postmeta.
Voir Exploration de 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 aider.

De Comment mysqldump table (s) spécifique (s)? (Syntaxe légèrement modifiée pour être plus clair.):

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 plug-ins sur le nouveau site, accédez à vos paramètres de lien permanent dans admin cp et enregistrez-les pour mettre à jour les fichiers de base de données vers la nouvelle URL du site. Activez vos plugins et voyez s’il ya des problèmes.

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

"[...] Les références à l'ancien nom de domaine ou à l'emplacement resteront dans la base de données, ce qui peut entraîner des problèmes d'affichage des liens ou des thèmes.

Si vous effectuez une recherche et un remplacement sur l'ensemble de votre base de données pour modifier les URL, vous pouvez poser des problèmes de sérialisation des données, car certains thèmes et widgets stockent des valeurs avec la longueur de votre URL marquée. " Lorsque votre domaine Nom ou URL changer } _

N'oubliez pas que la sérialisation des données peut également entraîner un conflit dans les tables de base de données relatives à vos plug-ins. Plutôt que d'effectuer une recherche manuelle et de remplacer 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 de codex précédent. S'il n'y a que quelques cas de sérialisation dans la base de données, vous pouvez simplement les éditer 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 de supports ou les répertoires utilisés par les plugins en fonction de la conception du plugin. Encore une fois, vous voudrez utiliser le script de recherche et de remplacement pour vous assurer qu'il n'y a pas de conflit de sérialisation lors de la mise à jour des chemins de fichiers. Alternativement, vous pouvez parcourir vos tables et les mettre à jour manuellement.

3
iyrin

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 se passe assez rapidement et vous pouvez migrer un site entre deux installations en moins de 5 minutes.

Vous pouvez synchroniser les informations d'identification de l'utilisateur à l'aide d'un plugin astucieux appelé Synchronisation utilisateur .

Je ne l'ai pas utilisé, mais ManageWP dispose d'un outil de déploiement et de clonage convivial permettant de passer d'un site existant à un nouveau site ... il convient de s'y intéresser.

0
NW Tech