从本地服务器传输后,Wordpress 站点不起作用(数据库问题?)

Posted

技术标签:

【中文标题】从本地服务器传输后,Wordpress 站点不起作用(数据库问题?)【英文标题】:Wordpress sIte doesn't work after transfer from local server (database issue?) 【发布时间】:2012-05-14 08:39:40 【问题描述】:

我使用 MAMP 在本地开发了一个自定义 woocommerce 商店的自定义 WordPress 主题。效果很好。

我已将所有文件上传到服务器,修改了新数据库的配置文件。 创建数据库,在 phpMyadmin 中从我的本地导出,然后将其导入在线服务器数据库。数据库是 16MB,所以它不能很好地作为一个文件或单独的表导入,所以我使用 bigdump 来导入它。看起来它有效。

之后,我将新数据库的 phpMyadmin 中 wp_options 表中的 URL 更改为新的。

但是,该站点现在显示错误行,并且顶部缺少 WordPress 管理栏。 除此之外,woocommerce 的 Products 选项卡缺失,插件管理区域为空。我也无法安装插件。等等'这一切都不能正常工作。

我猜这是数据库的错误传输,但我不知道。

This is the website

Error lines examples:
Warning: array_merge(): Argument #2 is not an array in /usr/local/pem/vhosts/254369/webspace/httpsdocs/wp-content/plugins/wp-pagenavi/scb/Options.php on line 46

还有……

Warning: call_user_func_array(): First argument is expected to be a valid callback,

'woocommerce_demo_store' was given in /usr/local/pem/vhosts/254369/webspace/httpsdocs/wp-includes/plugin.php on line 405

关于找出问题所在有什么建议吗?

【问题讨论】:

【参考方案1】:

您不应该通过 phpMyAdmin 导出所有表来导入数据。在此过程中,您将覆盖为新的 wordpress 安装创建的表,并使用其自己的选项值(例如 siteurl、bloginfo 等)。

所以在新服务器上重新安装 Wordpress,重新开始干净。不要覆盖它自动生成的表格。

登录到您的开发 wordpress 仪表板,转到工具 > 导出并选择所有内容,包括所有链接文件。转到新的 Wordpress,转到工具 > 导入,选择 Wordpress,安装插件,选择您导出的文件,然后一切准备就绪。

您需要更新一些可能不会在您的帖子/页面中更新的 URL。您可能还需要更新代码中的 catid,因为导入的类别将获得新的值。

【讨论】:

在尝试从本地服务器上导出的文件导入而不是在线时,这是否有效?它不会尝试访问它在此过程中从中导入的站点吗? (我认为它会询问是否“下载所有文件和附件”不?还是我不应该检查那个?) 是的,它适用于所有情况,只要您正在导出内容,然后将其从一个 Wordpress 站点导入到另一个站点。是的,请选中“下载所有文件和附件”,因为它会默认传输所有帖子、类别和页面,但如果您选择下载所有文件,它也会传输您媒体库中的所有文件。它将维护您可能嵌入在帖子或页面中的图像或视频。所有这些文件基本上都在 wp-content/uploads 文件夹中。 网站是否在线并不重要,因为它所做的只是从 phpMyAdmin 导出不会覆盖新 wordpress 安装属性的内容。因此,它需要从 wp_posts 表和 wp_users 等中选择需要传输内容的行。它不会尝试访问您从中导入的网站,因为它需要的一切都在导出的文件中。因此,当您上传它时,它已经拥有所需的一切,无论它导入的网站是在线网站还是本地网站。 我试过这个,我的导出文件是 10MB。这是我得到的错误:对不起,出现错误。文件为空。请上传更实质性的内容。此错误也可能是由于您的 php.ini 中禁用了上传,或者 post_max_size 被定义为小于 php.ini 中的 upload_max_filesize。 请阅读我在上面主要帖子中的编辑(在 cmets 中没有空间)。谢谢编辑:我似乎以某种方式编辑了您的答案而不是我的问题,现在无法删除它。该死的日子过得太长了。【参考方案2】:

James - 关于导入错误,这是因为您尝试导入文件的服务器对其可以导入的文件大小有限制。

进入服务器的根文件夹(wp-content、wp-includes 等文件夹所在的那个),然后编辑当前存在的 php.ini 文件,或者上传一个新文件。您可以下载此示例文件:http://www.reallylinux.com/docs/php.ini 并上传。将 post_max_size 和 upload_max_filesize 值编辑为 50MB 或其他值:post_max_size = 50M

这将解决导入问题。

对于插件错误,从开发服务器的 wp-content 复制插件文件并将它们导入实时服务器,它应该可以工作。

【讨论】:

我已经这样做了,现在发生的事情是导入上传文件,然后当它应该显示我选择导入用户(或将它们分配给现有用户)的屏幕并检查下载附件的框,它只有一个空白屏幕并卡在那里...... 我认为这可能是导入时出错。您是否看到任何已导入的帖子/页面?然后它可能在导入过程中失败。无论哪种方式,也许您应该设置一个新的数据库并安装 wordpress 并从头开始导入。经过大量的导入尝试和重写 db,可能某些内容已损坏。

以上是关于从本地服务器传输后,Wordpress 站点不起作用(数据库问题?)的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress:将多站点从服务器移动到本地主机

WordPress 本地主机站点重定向到实时站点

访问本地托管的 Wordpress 站点时出现问题(重定向+其他废话)

MySQL数据库导入成功但不起作用

将 wordpress 站点从一个本地主机转移到另一个本地主机

使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作