如何从“大型” WordPress 网站导出所有内容?

如何从“大型” WordPress 网站导出所有内容?

我有一个中等规模的 WordPress 博客,甚至可以说它很小,但是当我尝试导出帖子、评论、页面等时,页面超时。我已通过 ssh 进入服务器,可以看到命令运行了 90 秒,同时占用了 CPU,然后“崩溃”。我想这实际上是客户端超时,但我将 Firefox 超时配置得更长,但这并没有什么不同。也可能是 Dreamhost 终止了脚本。

我能做些什么?

答案1

1) 您可以使用多个插件进行 WP 备份/克隆。我个人使用的是这个: WP克隆

2) 如果出于某种原因,这不是一个选项,您将需要备份 WP 目录中的所有文件。接下来是 mysql B 备份。如果您的主机有 cpanel,则很简单:

Go to 'backup', under the 'Site Management' header in Cpanel.
Underneath where it says "Download a SQL DB Backup", click on the database name that you wish to backup
Select a place and filename for you to save on to your local computer
Do NOT attempt to open this file with Winzip.

如果没有,只需谷歌 mysql 备份

接下来转到新位置并恢复 mysql DB,将所有文件复制到新的 WP 目录

就这些了——但如果你不熟悉 Linux/Unix,我建议你使用插件路线

答案2

这个答案假设您熟悉命令行,如果不熟悉,我相信有插件可以工作,尽管没有插件我也能做得更好。如果需要插件,我可以更新我的答案。

步骤1:转储您的 wordpress 数据库。为此,请使用以下命令:

mysqldump -h hostname -u username -p wordpress > blog.sql

在哪里博客是您的 Wordpress 网站的数据库(它可能有所不同,但通常如此称呼)。

第2步:复制您的 Wordpress 网站。您可能需要尝试一下,但它将类似于以下内容:

rsync -av /var/www/wordpress /path/to/new/site

wget 也可能有效,所以这也可能是一个选择,使用哪一个取决于你。

确保 www-data 具有正确的权限:

chown -R www-data\: /wp-contenet

步骤3:将数据库读入到新的 Wordpress 位置。

mysqldump -h hostname -u username -p wordpress < blog.sql

步骤4:编辑 wp-config.php 以反映新的和正确的设置。

注意:您可能需要运行一些 SQL 命令才能使所有内容在新网站上正确显示。

答案3

我不会取消标记其他答案,因为它们可能更适合大多数用户,但我最终还是走了自己的路,因为我真的需要XML 导出版本:

为了方便后人理解,以下是脚本:

<?php
require(dirname(dirname(__FILE__)) . '/wp-load.php');
require(ABSPATH . 'wp-admin/includes/admin.php');
require('includes/export.php');

ob_start();
export_wp();
$xml = ob_get_clean();

file_put_contents('out.xml', $xml);
echo "done"
?>

答案4

至于实际问题,这是服务器限制,不允许进程完全执行。您可能已经耗尽了 Apache 或 PHP 内存限制。这可以通过联系您的主机来解决,但最简单的方法是找到另一种(更好)的导出网站的方法。这可以通过 CLI(rsync 文件和 mysqldump/import)来完成,否则,如果他们运行 cPanel 或其他 GUI,那里可能会有某种备份/传输选项(即使通过 PHPMyAdmin 执行转储也会让您更容易)。

相关内容