如何获取安装在远程服务器上的 Wordpress 站点的本地运行副本?

Posted

技术标签:

【中文标题】如何获取安装在远程服务器上的 Wordpress 站点的本地运行副本?【英文标题】:How to get locally running copy of Wordpress Site installed on remote server? 【发布时间】:2020-08-31 09:02:02 【问题描述】:

我花了几天时间解决这个问题,这可能是一个很容易解决的问题,因此感谢您的帮助。我已安装并在本地运行 MAMP,文档根路径指向名为 websites 的文件夹。在这个文件夹中,我有 2 个 Wordpress 网站,一个正在运行(网站 1),一个没有运行(网站 2)。 我需要帮助让无法正常工作的 Wordpress 网站(网站 2)正常工作。我要解决的问题是获取一个本地运行的 Wordpress 网站版本,该网站是使用我的托管服务提供商提供的一键安装功能创建的。这个远程站点有重要的工作,我想在本地复制,以便改进它。

当我使用 FTP 将托管服务提供商生成的远程 Wordpress 文件复制到我的本地网站文件夹中时,Wordpress 根本无法运行,因为它需要连接到数据库。我使用 phpMYAdmin 从远程站点导出数据并将其导入本地 phpMyAdmin 并尝试更新 wp-config.php 文件以反映本地更改。但是,本地站点不会连接到数据库,除非我完全重新安装 Wordpress(丢失对我首先尝试下载的站点的所有更改)。道德是我无法在不丢失工作的情况下运行安装过程。

当我导航到第二个(不工作的)站点时在浏览器中显示的错误,而不运行安装过程,取决于我在 wp-config 文件中保存的内容:

配置 #1:输入不正确的网站 1 数据库 - DB1

DB_Name = 'website_1_DB' //不能使用这个数据库 DB_User = '本地' DB_Password = 'SHA1' DB_Host = '本地主机'

localhost:8888/website1/ -> 输出:网站 1 工作正常

localhost:8888/website2/ -> 输出:Error Establishing a Database Connection in Wordpress

注意:以上配置在两个不同的 web-config.php 文件中用于网站 1 和网站 2。

配置 #2:正确的 DB2 和 root 用户

对于此配置,我已在 phpMyAdmin > DB2 > Privileges 中确认 root 具有 'All Privileges'

DB_Name = 'website_2_DB' DB_User = 'root' DB_Password = 'root' DB_Host = '本地主机'

localhost:8888/website2/ -> 输出:ERR_Connection_Refused

配置 #3:更正 DB2 并从 DB1 添加用户

对于这个配置,我基本上使用了配置 #1 中的用户(工作用户)和 DB2(正确的 DB)

DB_Name = 'website_2_DB' //不能使用这个数据库 DB_User = '本地' DB_Password = 'SHA1' DB_Host = '本地主机'

localhost:8888/website2/ -> 输出:它想运行 Wordpress 安装过程


附加信息:

我已打开调试。 表前缀似乎是准确的。 我已阅读这些文章和帖子。 How to Fix the Error Establishing a Database Connection in Wordpress How to Edit wp-config.php File in Wordpress Beginner's Guide to Wordpress Database Management with phpMyAdmin How Wordpress Actually Works Behind the Scenes (Infographic) Migrating a WordPress site to localhost Connect Wordpress to the database Wordpress: Workflows (2015) 我将 web-config-sample.php 更改为 web-config.php,实际上是安装了一个新的 Wordpress 实例,它确实连接到了正确的 DB1。但是,我要做的是在远程服务器上创建的 Wordpress 站点上工作。我试图避免重新安装主题并在本地更新配置,但这是唯一的方法吗?似乎我应该能够在服务器和本地主机之间来回移动整个安装,使用不同的配置文件,作为不同的版本。

我认为问题在于我使用托管服务的“一键安装”从最初安装网站的远程服务器迁移网站的方法。我刚刚使用 FTP 下载了所有的 Wordpress 文件,然后我使用 phpMyAdmin 导出和导入了数据库,将 siteUrl 更新为如下:

INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
(1, 'siteurl', 'http://localhost:8888/website2/', 'yes'),
(2, 'home', 'http://localhost:8888/website2/', 'yes'),

对于网站 1(在本地工作),我遵循了一个教程,但我不记得是哪个。根据这个infographic,我有很多地方可以看,有人知道从哪里开始吗?我在正确的道路上吗?这显然是可能的,因为我以前做过,但我忘记了我是怎么做到的。

最重要的是,我如何获得远程 Wordpress 站点的本地运行副本?

感谢您的帮助。

【问题讨论】:

我在 Twitter 上询问了 @mor10,他说:“使用像 WP Migrate DB 或类似的迁移插件,并考虑使用像 Local by Flywheel 这样的工具来代替 MAMP。” twitter.com/mor10/status/1260998219502239745 【参考方案1】:

我知道你面对的油漆。我还在我的 VPS 上运行 WordPress。您可能需要检查 updraft 插件以备份所有远程文件并将它们安装回本地计算机。

或者另一件事是,我建议您使用复印机插件。祝你好运

【讨论】:

谢谢!我有点想避免使用插件,因为我觉得第三方依赖增加了这种已经很脆弱的技术的攻击面。但是,我认为没有太多选择,因为我不确定问题出在哪里。理想状态是使用适当的数据库在本地运行远程站点的最新副本,但是,更改 URL 的复杂性(在此处找到:wordpress.org/support/article/moving-wordpress)a.)似乎与使启动页面正常工作无关,并且b.) 需要大量的工作来测试它是否属实。 当您使用复制器插件时,只需单击一下即可从远程服务器安装到本地服务器。您无需再考虑任何更改的 URL。我一直使用这个插件,从来没有遇到任何问题。【参考方案2】:

我不建议手动移动,因为它的工作量很大。您可以使用 WordPress 备份/迁移工具来简化此任务。这些插件会自动替换所有 URL,您无需执行任何操作。

在本地 WordPress 网站上安装备份插件,例如 Updraft 或 Duplicator。

使用插件完全备份您的网站。

研究并明智地为您的 WordPress 网站选择 best web hosting provider。

获取域名并将域名服务器正确设置到网络主机(远程服务器)。

在您的网络主机(远程服务器)上安装相同的备份插件。

通过备份插件上传您网站的备份。

完成。现在,您的网站将在您的网络主机(远程服务器)中的域上运行。

注意:如果您在 WordPress 上使用某种页面构建器插件,例如 Elementor,请确保使用 Elementor 的设置将现有 URL (http://localhost/) 替换为新 URL (https://example.com)并使用 Elementor 的设置重新生成 CSS。

您可以在以下位置找到这些设置:

WP 管理员 > Elementor > 工具 > 替换 URL WP 管理员 > Elementor > 工具 > 重新生成 CSS

【讨论】:

以上是关于如何获取安装在远程服务器上的 Wordpress 站点的本地运行副本?的主要内容,如果未能解决你的问题,请参考以下文章

wordpress的下载和安装介绍

单服务器冲突上的 Wordpress + Wordpress 网络

在服务器上搭建多个WordPress博客网站教程(超级详细)

如何设置服务器上的MongoDB让别的机子远程连接

如何安装和配置WordPress(WP)程序

从远程网络访问 localhost 上的 wordpress 网站