我正在寻找最好,最安全的方法,即使用多站点在本地开发多个子站点,并在准备就绪时将其移至生产环境。
我已经将完整的多站点安装与第一个子站点一起迁移了,该子站点现已上线。我希望在本地服务器上开发其他站点,因此我不理会生产服务器,但是显然我无法再次进行完全迁移。
我在寻找解决方案,但发现的所有内容都是关于将单个站点移动到多站点或以其他方式移动,而不是“将子站点从多站点移动到多站点”。
我想保留所有内容:设置,小部件等。
我正在寻找最好,最安全的方法,即使用多站点在本地开发多个子站点,并在准备就绪时将其移至生产环境。
我已经将完整的多站点安装与第一个子站点一起迁移了,该子站点现已上线。我希望在本地服务器上开发其他站点,因此我不理会生产服务器,但是显然我无法再次进行完全迁移。
我在寻找解决方案,但发现的所有内容都是关于将单个站点移动到多站点或以其他方式移动,而不是“将子站点从多站点移动到多站点”。
我想保留所有内容:设置,小部件等。
Answers:
这可能有些乏味,但希望能有所帮助。从一个环境到另一个环境的变化越少,该过程将越痛苦。特别是,如果域,站点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或您希望用来管理数据库的任何方法手动对其进行编辑。
您可能会遇到的另一个问题是,数据库表中存储的所有不正确的文件路径都需要更新以反映新位置。媒体目录或插件使用的目录可能就是这种情况,具体取决于插件的设计方式。同样,您将要使用搜索和替换脚本来确保在更新文件路径时没有序列化冲突。另外,您可以浏览表格并手动更新它们。
您不能使用WordPress的内置导出和导入功能吗?然后,只需通过FTP将主题从一个安装转移到另一个安装即可。它运行相当快,您可以在不到5分钟的时间内进行两次安装之间的站点迁移。
您可以使用名为User Syncronization的漂亮插件来同步用户凭据。
我没有使用过它,但是ManageWP有一个用户友好的部署和克隆工具,可以从现有站点迁移到新站点……值得研究。