如何将子站点从开发多站点迁移到生产多站点


12

我正在寻找最好,最安全的方法,即使用多站点在本地开发多个子站点,并在准备就绪时将其移至生产环境。

我已经将完整的多站点安装与第一个子站点一起迁移了,该子站点现已上线。我希望在本地服务器上开发其他站点,因此我不理会生产服务器,但是显然我无法再次进行完全迁移。

我在寻找解决方案,但发现的所有内容都是关于将单个站点移动到多站点或以其他方式移动,而不是“将子站点从多站点移动到多站点”。

我想保留所有内容:设置,小部件等。


1
我认为商业的BackupBuddy插件可以做到这一点,但我希望看到对此有更一般的答案。
拉斯特2014年

由于数据库中已序列化的字符串,操作起来并不容易。到目前为止,我还没有看到用于纯迁移的插件,但是绝对应该这样做。将一个博客的“大部分”部分移动到另一个博客的唯一方法是通过XML导出/导入机制,但是此后您仍然必须修复很多路径。
2ndkauboy 2014年

1
您最好的选择是使用直接sql查询。我已经做过不止一次了,如果您足够小心的话,它就可以正常工作。
krembo99 2014年

@ krembo99,您能再说明一下您的技术吗?
molokom 2014年

@Rarst,就BackupBuddy而言,这来自他们的常见问题解答:“不。BackupBuddy多站点支持是试验性的。不建议在生产站点中使用它,也未得到正式支持。”
molokom 2014年

Answers:


4

这可能有些乏味,但希望能有所帮助。从一个环境到另一个环境的变化越少,该过程将越痛苦。特别是,如果域,站点ID,文件路径保持不变,则此过程的痛苦程度将减小。

这篇文章假定您具有一些数据库管理知识。这不是一个完整的步骤,因为您应该搜索论坛,并可能针对遇到任何问题的步骤创建一个特定的线程,例如,如果您需要导出数据库表的帮助。

最重要的事情是备份本地开发站点和新位置的整个数据库和文件,以防出现问题。期待出问题。如果没有,请感到惊喜。

移动主题文件应该非常简单。将您的主题文件上传到wp-content / themes目录,并像往常一样激活它。我假设这是所有博客都可以访问的共享主题。

将插件文件上传到新位置的wp-content / plugins。暂时不要激活它们。

请注意,您要迁移的博客专有的任何内容都将位于目录中,wp-content/blogs.dir/2/files其中目录ID 似乎为2。如果可以在新位置维护此站点ID,则应在迁移到新位置后有助于最大程度地减少数据库中的冲突。否则,您将必须更新数据库以反映新路径。

您将需要导出与您要迁移的博客相关的多站点表,并将它们导入到新位置。您将必须编辑存储与要迁移的博客相关的数据的表。确保这些表的前缀在新位置相同。

例如,您博客的wp_blogs表包含博客ID,站点ID,域和允许WordPress多站点识别并使用您博客的路径。编辑其中任何不再正确的内容以反映新的位置,但是在尝试这样做之前,请阅读本文的其余部分。

请参阅多站点表概述

迁移要转移的博客的WordPress和插件设置,您将需要在本地停用所有插件,然后导出站点特定的表(Codex参考),包括插件的表。将这些表导入到新位置的数据库。

确保新位置使用与要导入的表相同的数据库前缀。前缀将包含您博客的站点ID,看起来像wp_2_options, wp_2_posts, wp_2_postmeta
请参阅Lisa Sabin-Wilson的探索WordPress多站点

我假设您知道如何通过phpmyAdmin或终端中的mysqldump命令导入/导出。这有点超出了本文的范围,但是这里有一个导出示例应该会有所帮助。

您如何mysqldump特定表?(对语法进行了稍微编辑以使其更加清晰。):

如果要从名为mydb的数据库中转储表t1,t2和t3

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

在新站点上激活插件之前,请转到admin cp中的永久链接设置,然后保存设置以将数据库文件更新为新站点url。激活您的插件,看看是否有任何问题。

您可能会遇到的一个问题是表中的数据序列化。

“ [...]对旧域名或位置的引用将保留在数据库中,并且可能导致链接或主题显示出现问题。

如果进行搜索并替换整个数据库以更改URL,则可能会导致数据序列化问题,原因是某些主题和窗口小部件存储的值带有标记的URL长度。” 当您的域名或URL更改

请记住,数据序列化也可能导致与您的插件有关的数据库表发生冲突。与其对存储在数据库中的url执行手动搜索和替换,请使用上一个Codex链接中建议的数据库搜索和替换脚本。如果数据库中只有很少的序列化实例,则可以通过phpMyAdmin或您希望用来管理数据库的任何方法手动对其进行编辑。

您可能会遇到的另一个问题是,数据库表中存储的所有不正确的文件路径都需要更新以反映新位置。媒体目录或插件使用的目录可能就是这种情况,具体取决于插件的设计方式。同样,您将要使用搜索和替换脚本来确保在更新文件路径时没有序列化冲突。另外,您可以浏览表格并手动更新它们。


谢谢!因此,以这种方式工作似乎没有任何实际好处:这是一袋伤害。开发本地单个站点并迁移到多站点环境会更好吗?
molokom 2014年

您可能会遇到很多相同的问题,但是迁移所需的表应该更少。只是为了给您一个主意,这是一个不错的指南,名为“ 将现有博客移至WordPress Multi-Site”。我将留给您确定哪种方法对您作为开发人员更有效。
iyrin

0

您不能使用WordPress的内置导出和导入功能吗?然后,只需通过FTP将主题从一个安装转移到另一个安装即可。它运行相当快,您可以在不到5分钟的时间内进行两次安装之间的站点迁移。

您可以使用名为User Syncronization的漂亮插件来同步用户凭据。

我没有使用过它,但是ManageWP有一个用户友好的部署和克隆工具,可以从现有站点迁移到新站点……值得研究。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.