如何以零停机时间将WordPress从共享主机迁移到云服务器

来自菜鸟教程
跳转至:导航、​搜索


状态: 已弃用

本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:

原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


迁移到云服务器

许多博主从共享主机开始。 这可能有利于开始,但是当流量增长时(例如 每天有数百名访问者),您应该考虑将博客移至个人云服务器。 迁移到一个并不是很复杂,只需正确按照步骤操作,您就可以在几个小时内迁移一个 WordPress 博客/网站,而无需任何停机时间。

第1步。 创建备份

您需要备份所有文件以及 MySQL 数据库(来自您当前的共享托管服务器)。 大多数共享主机提供商都有一个用于管理服务器的简单 GUI,例如 cPanel。

备份文件(图像、主题、插件)

您不需要备份核心 WordPress 文件,但必须备份图片(您可能已经为帖子上传)、主题和插件。 为此,首先,创建 wp-contents 目录的存档(右键单击 => 压缩为 zip),然后下载。

备份数据库

在 cPanel 中,转到“备份向导 => MySQL 数据库”。

您'将能够下载*.sql.gz格式的MySQL数据库。 在桌面上另存为 backup_db.sql.gz

第2步。 使用 LAMP Stack 设置云服务器

使用 Ubuntu 12.04 启动一个 droplet(云服务器)并按照本指南进行基本设置过程:Ubuntu Server Setup。 现在云服务器已经设置好了,您需要安装 WordPress 依赖项,例如 MySQL、PHP 和 Apache 等 Web 服务器。 按照 本指南 设置 LAMP 堆栈。

步骤 3。 安装 WordPress

设置 LAMP 堆栈后,安装最新版本的 WordPress。 为此,只需遵循以下指南:在 Ubuntu 上安装 Wordpress。

第4步。 创建虚拟主机

创建一个 Apache 虚拟主机来处理您的 Wordpress 博客。 在 site-available 目录下新建文件:

sudo nano /etc/apache2/sites-available/yourdomain.com

为博客添加一个虚拟主机(相应地替换 yourdomain.comusername)。 每个 VirtualHost 块定义一个单独的云服务器,数字 80 表示 Apache 将侦听的端口。 ServerName 代表你的域名,DocumentRoot 应该指向 WordPress 目录的根目录。

&ltVirtualHost *:80>
     ServerName yourdomain.com
     DocumentRoot /var/www/
&lt/VirtualHost>
&ltVirtualHost *:80>
     ServerName www.yourdomain.com
     Redirect permanent / http://yourdomain.com/
&lt/VirtualHost>

然后使用 Apache 实用程序 a2ensite 启用此虚拟主机。 它采用上述配置并告诉 Apache 监听 yourdomain.com

sudo a2ensite yourdomain.com

现在重新加载 Apache 服务器。 每当您对服务器配置进行任何更改时,都必须重新加载服务器以应用这些更改。

sudo service apache2 reload

步骤 5。 恢复数据库和文件

WordPress 安装现已设置,但您尚未导入旧文章、图像、主题等。 我们先上传文件。

将备份文件 - MySQL 数据库和文件内容上传到 VPS

scp 非常方便上传文件。 与 FTP 一样,您可以传输文件,但 SCP 通过 SSH 安全地传输文件。 对于上传文件,您需要将两个参数传递给命令。 第一个是您要上传的文件的位置,第二个是目标服务器(形式为 username@server_ip_address)。 要上传备份文件,只需在本地(在您的计算机上)执行这些命令,它将文件上传到服务器的主目录。

scp ~/Downloads/backup_db.sql.gz username@server_ip_address:
scp ~/Downloads/wp-content.zip username@server_ip_address:

恢复数据库

要恢复数据库,请登录到服务器并键入(相应地替换 database_namedatabase_user)以下命令:

mysql -h localhost -u database_user -p database_name < backup_db.sql.gz 

该命令需要几个参数:用于指定主机地址的 -h 选项(在本例中为 localhost,因为数据库在同一台服务器上运行),第二个参数 -u,提供数据库用户名,第三个选项, -p,表示将在提示时提供密码,第四个选项指定 WordPress 数据库的名称,最后一个参数是输入 - 备份数据库。

您将被要求输入数据库用户的密码。 在几秒钟内,数据库内容将被导入到指定的数据库中。

恢复 wp-content 文件

要恢复主题、上传的媒体(图像、视频等)和插件,只需提取(使用 unzip 命令)zip 存档。 它将提取内容并将其合并到现有的 wp-contents 目录中。

sudo unzip wp-content.zip -d /var/www/

步骤 6。 测试你的博客

为了实现零停机,这一步很重要。 您必须确保在新位置正确设置了博客。 为此,首先更新您的主机文件。

sudo nano /etc/hosts

将此行添加到 hosts 文件(现在当您访问 yourdomain.com 时,它将指向您的新服务器,但仅在您的计算机上 - 这使测试更容易)。

server_ip_address  yourdomain.com 

接下来,清除您的 DNS 缓存(由于您更新了 hosts 文件,您必须清除 DNS 缓存以应用更改。 nscd 是清除 DNS 缓存结果的好小工具)

sudo service nscd restart

现在,如果您访问 yourdomain.com,它将从您的新服务器加载页面。 如果它看起来像预期的那样(你所有的文章、图像、页面、插件、自定义设计等),那么这意味着你已经准备好了,你应该继续下一步。 否则,请尝试找出问题所在。 (测试成功后,将以上行从hosts文件中删除)。

步骤 7。 更新您的 DNS 设置

现在您应该使用您的域名注册商更新 DNS 设置。 对于 A 记录,将 IP 地址更新为新值(您的 VPS 的 IP 地址),或者您也可以将您的 DNS 移动到您的 VPS 提供商(并在那里添加 A 记录)。 对于 DigitalOcean,您需要放置这些名称服务器:

ns1.digitalocean.com
ns2.digitalocean.com
ns3.digitalocean.com

注意:您的 DNS 服务器将开始传播新值,但这需要一些时间,所以不要在转换后立即终止旧的共享主机(最好在一天之后)。

文章提交者:Ramesh Jha