0

我有一个使用 Wordpress 和 Headway 构建的客户的 wordpress 网站。我需要将它移动到新共享服务器上的新域(具有相同硬件配置的相同主机提供商)。

我之前已经移动了许多这样的 wordpress 设置,包括 Wordpress / Headway 组合。在调试过程中,我还使用了 Headway 的文档和视频来仔细检查我做的一切是否正确。

我移动了数据库并用新域替换了所有出现的旧域,并更新了所有文件路径。然后我将public_html文件夹复制到新服务器。该站点此时应该可以正常工作。

No Content to Display相反,我在一个空的 html 页面上收到了 Headway 错误消息。我已经将问题追溯到wp-configHeadway 为其块存储序列化数据的表。除了表中的这些 Headway 条目之外,我可以将整个数据库中的数据更新到新域wp-config。一旦我更新了这些,网站就开始崩溃,如果我全部更新,网站就会加载 Headway 错误消息No Content to Display。底层的 Wordpress 系统似乎仍在工作,因为我可以加载/wp-admin控制台并且我的所有内容都存在并且看起来正确。

如果我更深入地跟踪问题,则似乎 Wordpress 功能get_options()在 Headway 文件中失败data-layout-options.php。我无法进一步调试。

该站点在原始域上完美运行,理论上,我正在直接复制所有数据,然后简单地用新域替换旧域。

任何人都可以帮助解决类似的问题吗?感觉就像我在追逐代码中的错误,而实际上它是某种简单的疏忽或配置设置已被修改。请帮忙!!!

4

2 回答 2

0

我确实接近问题所在。

Wordpress 表中的序列化 Headway 数据wp-config包含字符串长度。自己迁移数据库,然后用新的域和旧的 Web 文件夹文件路径 grepping 并将旧域替换为新的 Web 文件夹文件路径会导致反序列化在 Wordpress 系统中失败(例如 get_options() Wordpress 函数)。

我没有编写自定义脚本来处理字符串长度,而是测试了一些数据库迁移插件。 WP Migrate DB是赢家并解决了问题。

迁移数据库

在原始域上安装插件(原始 Wordpress 安装)。它将要求您输入新域和您的 web 目录的新文件路径(web 目录文件路径也很重要)。例如,在我的例子中,web 目录的文件路径已从 /home2/old_username 更改为 /home6/new_username。

然后,该插件将转储整个 Wordpress 数据库,并将所有出现的旧域和旧文件路径替换为 Web 目录的新域和文件路径。然后,.sql 转储将保存在您的计算机上。

然而,这并不完美,我仍然需要自己做一些 grep 和替换。此外,我必须小心这一点,因为有一些遗漏的数据位于 Headway 序列化数据中,我必须执行 MySQL 查询以确保正确更新了字符串长度。

错过了这几个更新,因为有些数据库条目有http://www.olddomain.com,有些有http://olddomain.com。该插件并没有全部捕获,但可以手动替换。

最后,我必须将这个更新的 .sql 转储导入新域上的空 Wordpress 数据库。

故事的寓意是,Headway V3 迁移到新域并不容易。 你必须非常细致。

另一种选择是BackupBuddy,但我没有尝试,因为它的成本 > 75美元。BackupBuddy 很可能仍然会错过一些域和文件路径更新,所以要小心。

于 2012-05-13T19:53:38.150 回答
0

我找到了 T. Brian Jones 的解决方案,并且刚刚将其应用于带有 HEADWAY 3.6.2 的 WordPress 3.8.1。

一切正常。像我这样的新手的一个技巧:如果您不知道要移动数据库的服务器上的文件路径,那么在进行数据库转储之前,请在此服务器上安装 WP Migrate DB,运行插件(工具)并从中获取路径那里...

谢谢 TBJ

马切伊

于 2014-02-23T12:59:26.923 回答