我有一个客户端的wordpress网站,它是使用Wordpress和Headway构建的。我需要将它移动到新共享服务器上的新域(具有相同硬件配置的相同主机提供商)。
之前我已经移动过很多像这样的wordpress设置,包括Wordpress / Headway组合。我也在调试期间使用Headway的文档和视频来仔细检查我是否正确地做了一切。
我移动了数据库并用新域替换了所有旧域,并更新了所有文件路径。然后我将public_html
文件夹复制到新服务器。该网站应该在这一点上工作。
相反,我在一个空的html页面上收到了Headway错误消息No Content to Display
。我已将问题追溯到wp-config
表,其中Headway存储了块的序列化数据。除了wp-config
表中的这些Headway条目之外,我可以将整个数据库中的数据更新到新域。一旦我更新了这些网站,网站就会开始崩溃,如果我全部更新,网站会加载Headway错误消息No Content to Display
。基础Wordpress系统似乎仍在工作,因为我可以加载/wp-admin
控制台,我的所有内容都存在并且看起来正确。
如果我更深入地追踪问题,似乎Wordpress函数get_options()
在Headway文件data-layout-options.php
中失败了。我无法进一步调试。
该网站完全适用于原始域,理论上,我正在对所有数据进行直接复制,然后只需用新域替换旧域。
任何人都可以帮助解决类似的问题吗?感觉就像我正在追逐代码中的一个错误,实际上它是某种简单的疏忽或配置设置已被广泛传播。请帮忙!!!
答案 0 :(得分:0)
我确实接近了这个问题。
Wordpress wp-config
表中的序列化Headway数据包含字符串长度。自己迁移数据库,然后使用新的网络文件夹文件路径使用新域和旧的Web文件夹文件路径更新和替换旧域会导致WordPress系统中的反序列化失败(例如,get_options()Wordpress函数)。 / p>
我没有编写自定义脚本来处理字符串长度,而是测试了一些数据库迁移插件。 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迁移到新域名并不简单。你必须非常细致。
另一种选择,我没有尝试,因为它的成本> $ 75是BackupBuddy。可能BackupBuddy仍然会遗漏一些域和文件路径更新,所以要小心。
答案 1 :(得分:0)
我找到了T. Brian Jones的解决方案,刚刚将其应用于带有HEADWAY 3.6.2的WordPress 3.8.1。
一切正常。 像我这样的新手的一个技巧:如果您不知道移动数据库的服务器上的文件路径,那么在此服务器上执行数据库转储安装WP Migrate DB之前,请运行插件(工具)并从中获取路径那里...
感谢TBJ
马切伊