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

时间:2014-01-31 作者:molokom

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

我已经用第一个子网站迁移了完整的多站点安装,该子网站现在处于活动状态。我更喜欢在本地服务器上开发其他站点,所以我不需要使用生产服务器,但显然我无法再次进行完全迁移。

我寻找了一个解决方案,但我发现的一切都是关于将单个站点移动到多站点,或者相反,没有“将子站点从多站点移动到多站点”。

我想保留一切:设置、小部件等等。

2 个回复
最合适的回答,由SO网友:iyrin 整理而成

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

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

最重要的是backup your entire database and files 对于本地开发人员站点和新位置,以防出现问题。预计会出现问题。如果没有,请感到惊喜。

移动主题文件应该非常简单。Upload your theme files 转到wp内容/主题目录,并像往常一样激活它。我假设这是所有博客都可以访问的共享主题。

Upload plugin files 到新位置的wp内容/插件。暂时不要激活它们。

请注意,您正在迁移的博客专有的任何内容都将位于如下目录中wp-content/blogs.dir/2/files 其中2是站点id。如果可以在新位置维护此站点id,则在迁移到新位置后应有助于将数据库中的冲突降至最低。否则,必须更新数据库以反映新路径。

你需要export the multisite tables related to the blog 您正在尝试将它们迁移并导入到新位置。您必须编辑存储与正在迁移的博客相关数据的表。确保这些表的前缀在新位置相同。

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

看见Multisite Table Overview

migrate your WordPress and plugin settings for the blog to be transfered, 您需要在本地停用所有插件,然后导出site specific tables (codex参考),包括您的插件。将这些表导入新位置的数据库。

确保新位置使用与要导入的表相同的数据库前缀。前缀将包含您博客的站点id,如下所示wp_2_options, wp_2_posts, wp_2_postmeta.
请参见Exploring WordPress Multisite by Lisa Sabin-Wilson

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

从…起How do you mysqldump specific table(s)? (为了更加清晰,对语法进行了略微编辑。):

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

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

在激活新站点上的插件之前,请转到admin cp中的permalink设置并保存设置,以将数据库文件更新到新站点url。激活你的插件,看看是否有任何问题。

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

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

如果对整个数据库进行搜索和替换以更改URL,则可能会导致数据序列化问题,因为某些主题和小部件存储的值标记了URL的长度。“”When Your Domain Name or URLs Change

请记住,数据序列化也可能导致与插件相关的数据库表发生冲突。使用database search and replace script 在之前的codex链接中推荐。如果数据库中只有几个序列化实例,您可以通过phpMyAdmin或任何您管理数据库的首选项手动编辑它们。

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

SO网友:NW Tech

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

您可以使用一个名为User Syncronization.

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

结束

相关推荐

WordPress MultiSite可以使用了吗?

我计划为不同类型的社区创建一个网站。例如,不同类型的开发人员。PHPJavaAndroidTC每种类型都有不同的注册和配置文件字段。现在我的困惑是,要么我应该创建多站点网络,每个站点将包含不同的开发人员,要么只有一个站点可以明智地完成这项工作?我需要做的一些事情是允许用户随时开始使用其他网站,例如,如果x用户注册了Java,现在他想注册PHP,他应该能够在不再次注册的情况下放置他的内容,并且用户id也应该是相同的,所以每当我通过用户id获取内容时,它都会给我来自同一用户的不同网站的所有数据。另一个问题是,