如何在零停机的情况下将 WordPress 从共享主机迁移到云服务器

2023-11-05

Status:已弃用

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

  • 升级到Ubuntu 14.04.
  • 从 Ubuntu 14.04 升级到 Ubuntu 16.04
  • 将服务器数据迁移到支持的版本

Reason: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL)并且不再接收安全补丁或更新。本指南不再维护。

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

迁移到云服务器

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

步骤 1. 创建备份

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

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

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

compress cpanel dir

备份数据库

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

wizard

You'll be able to download the MySQL database in *.sql.gz format. Save it as backup_db.sql.gz on your desktop. backup mysql db

步骤 2. 使用 LAMP 堆栈设置云服务器

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

步骤 3. 安装 WordPress

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

步骤 4. 创建虚拟主机

创建一个 Apache 虚拟主机来处理您的 Wordpress 博客。在中创建一个新文件现场可用目录:


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

添加虚拟主机(替换yourdomain.com and username相应地)对于博客。每个VirtualHostblock 定义了一个单独的云服务器,数字 80 表示 Apache 将侦听的端口。ServerName代表您的域名和DocumentRoot应指向 WordPress 目录的根目录。


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

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


sudo a2ensite yourdomain.com  

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


sudo service apache2 reload  

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

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

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

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


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

恢复数据库

要恢复数据库,请登录服务器并键入(替换database_name, database_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  

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


server_ip_address  yourdomain.com   

接下来,清除 DNS 缓存(因为您已经更新了主机文件,所以必须清除 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  

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

文章提交者:拉梅什·杰哈
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在零停机的情况下将 WordPress 从共享主机迁移到云服务器 的相关文章

  • PostgreSQL 错误:无法连接到数据库 template1:​​无法连接到服务器:没有这样的文件或目录

    我需要创建数据库 首先我运行 sudo su postgres then createdb test 我不断收到此错误 createdb could not connect to database template1 could not c
  • 使用 --prof 选项创建多个日志文件而不是一个 v8.log 的节点

    我正在尝试使用 prof 选项来分析我的 Node 应用程序 但我发现不是一个单一的 v8 log 文件 而是使用诸如isolate 0x9582b40 v8 log isolate 0xa1cab78 v8 6049 等前缀创建的多个文件
  • 通过 HTTPS 的隧道

    在我的工作场所 流量拦截器 防火墙变得越来越糟糕 我无法通过端口 22 连接到我的家用计算机 并且缺乏 ssh 访问权限让我感到难过 我以前可以通过将 SSH 移动到端口 5050 来使用它 但我认为最近的一些过滤器现在将此流量视为 IM
  • WordPress 子主题覆盖父主题包括

    我正在创建 WordPress 子主题 需要覆盖某些小部件模板 我正在尝试使用此方法来覆盖父主题调用 覆盖主题功能的正确方法 http www venutip com content right way override theme fun
  • 如何在 Spring Mvc 项目中设置上下文根

    我在 Tomcat 服务器中使用 Spring MVC 项目 每次运行应用程序时 服务器上下文根都会更改 如何设置固定上下文根 我的项目名称是 DemoApplication 首先部署此上下文根 路径是 http localhost 808
  • WordPress 子主题包括包含文件

    我在一家WordPress使用 AMPPS 作为本地主机在我的本地计算机上进行设置 使用 Delta 主题 我创建了一个子主题 delta2 child 初始设置效果很好 但是 我需要更改包含文件夹中名为 home slider php 的
  • 获取php中两个日期之间的天数[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我试图获取两个日期之间的天数 但返回的结果不正确 这是我的尝试 t time get the time Y m d g
  • 无法连接到 Wordpress SVN 服务器来更新存储库

    好的 今天早上由于某种原因 我无法连接到 Wordpress SVN 存储库并执行基本的 svn 命令 例如checkout update 以下是正在发生的情况的示例 svn co http svn automattic com wordp
  • 调用未定义的函数curl_version

    您好 我已经在运行 php 5 6 的 ubuntu 14 04 上安装了 wordpress 4 6 网站 管理页面不可见 我可以在日志中看到以下错误 致命错误 在第 274 行调用 var www html files modules
  • Docker 不遵循构建目录中的符号链接

    我正在对一个应用程序进行 Docker 化 其中涉及通过 Clang 将二进制文件与其他 C 文件链接 我们维护二进制文件的符号链接版本 因为它们在整个代码库中使用 我的 Docker 构建目录包含整个代码库 包括源文件以及这些源文件的符号
  • 我可以在 Ubuntu 上使用 Homebrew 吗?

    我只是尝试使用 Homebrew 和 Linuxbrew 在我的 Ubuntu 服务器上安装软件包 但都失败了 这就是我尝试安装它们的方法 sudo apt get install build essential curl git m4 r
  • 无法在 Netbeans 9 中设置 apache tomcat

    我正在尝试在 Netbeans IDE 9 中设置 apache tomcat 我已尝试以下步骤 但无法设置 在 工具 gt 服务器 中 我单击 添加服务器 按钮 显示以下消息 因此 我尝试从 工具 gt 插件 安装插件 会显示一个对话框
  • 从 Laravel 的 URL 中删除 index.php

    我正在 Linux Mint 中使用 Laravel 5 5 12 我正在使用 LAMP 堆栈 我想删除index php来自网址 我的mod rewrite已启用阿帕奇模块 My htaccess文件位于public文件夹 它包含以下代码
  • AWS EC2 上的 Wordpress - 分配弹性 IP 后损坏

    所以 我安装了 WordPress 并且运行得很好 我可以通过从实例获得的公共 DNS 访问该站点和 wp admin 但是 一旦我创建了弹性 IP 并将其与实例关联 我就无法再访问 wp admin 并且主页样式表和 JavaScript
  • 如何使用 PHP 更改文件的标题属性

    用户使用我的 PHP 应用程序上传 PDF 文件 我将它们存储在 S3 上 稍后 其他用户会查看这些文件 我会在他们的浏览器中 内联 显示这些文件 问题在于 PDF 的 标题 属性显示在通常显示网站标题的浏览器选项卡中 由于它是由原始上传的
  • PHP 中的异步数据库/服务调用:Gearman 与 pthreads

    在我们的 LAMP 站点上 我们遇到一些服务必须多次调用数据库才能提取数据的问题 通常在 PHP 中完成此操作的方式 至少我的经验 是串行的 这显然是低效的 我们可以通过使用缓存和聚合一些查询来缓解一些低效率的问题 但在某些情况下我们仍然需
  • 加载时覆盖 WordPress 插件翻译文件

    我正在使用带有插件的法语版 WordPress活动日历 http wordpress org plugins the events calendar 该插件附带了捆绑的法语翻译 但有一些错误 我想修复它们 但替换原始文件是一个坏主意 因为它
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • 项目链接在 Wamp 服务器上不起作用

    我正在另一台计算机上安装 Wamp 服务器来运行中型数据库和 UI 我已成功阻止 IIS 并将服务器路由到 Localhost 8080 但是每当我尝试从 localhost 主页访问我的项目时 在 www 文件中 我被重定向到页面未找到错
  • org.apache.http.conn.HttpHostConnectException:在 android 中连接到 http://localhost 被拒绝

    我正在制作一个应用程序 在执行它时将图像上传到服务器并将其数据库更新到android中的服务器 它显示错误 Connection to http localhost refused 还有更多错误 我研究了这个问题 发现不是提供 URL 连接

随机推荐

  • 如何在 Ubuntu 18.04 上安装 PrestaShop

    普斯塔商店是一个免费开源的电子商务平台 它基于 PHP 和 MySQL 可以通过免费和高级插件和主题进行扩展 PrestaShop 具有直观的管理界面 多个支付网关 多语言 分析和报告等功能 是许多在线商家的首选平台 在本教程中 我们将向您
  • 如何在 Ubuntu 18.04 上安装 Jenkins

    Jenkins是一个开源自动化服务器 提供了一种设置持续集成和持续交付 CI CD 管道的简单方法 持续集成 CI 是一种 DevOps 实践 团队成员定期将代码更改提交到版本控制存储库 然后运行自动化构建和测试 持续交付 CD 是自动构建
  • 如何在 CentOS 7 上安装 Yarn

    Yarn 是一个与 npm 兼容的 JavaScript 包管理器 可帮助您自动执行安装 更新 配置和删除 npm 包的过程 它的创建是为了解决 npm 的一系列问题 例如通过并行操作加快软件包安装过程并减少与网络连接相关的错误 在本教程中
  • Linux 中的 Pgrep 命令

    本文涵盖了 Linux 的基础知识pgrep命令 pgrep是一个命令行实用程序 允许您根据给定条件查找正在运行的程序的进程 ID 它可以是完整或部分进程名称 运行进程的用户或其他属性 The pgrep命令是的一部分procps or p
  • 安装和配置 Postfix 和 Dovecot

    这是我们的第二篇文章设置和配置邮件服务器系列 在这篇文章中 我们将向您展示如何安装和配置 Postfix 和 Dovecot 这是我们邮件系统的两个主要组件 Postfix 是一个开源邮件传输代理 MTA 是一种用于发送和接收电子邮件的服务
  • 如何在 Debian 10 上安装 Memcached

    Memcached 是一个免费开源的高性能内存键值数据存储 它通常用于通过缓存 API 和数据库调用结果中的各种对象来加速应用程序 本文介绍如何在 Debian 10 上安装和配置 Memcached 先决条件 您需要以以下身份登录具有 s
  • Linux 中的剪切命令

    Linux 和 Unix 系统中有许多实用程序可让您处理和过滤文本文件 cut是一个命令行实用程序 允许您从指定文件或管道数据中剪切部分行并将结果打印到标准输出 它可用于按分隔符 字节位置和字符来剪切行的各个部分 在本文中 我们将向您展示如
  • 如何在 Ubuntu 12.04 x64 上安装 iRedMail

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • Spring框架

    Spring 框架是最流行的 Java EE 框架之一 在本文中 我们将了解以下内容 Spring框架架构 Spring的核心组件 spring 框架下的各种项目 我查看了 Spring Framework Servlet JSP 和 JS
  • 如何在 Ubuntu 16.04 上使用 uWSGI 和 Nginx 为 Django 应用程序提供服务

    介绍 Django 是一个功能强大的 Web 框架 可以帮助您启动 Python 应用程序或网站 Django 包含一个简化的开发服务器 用于在本地测试代码 但对于任何与生产稍微相关的事情 都需要更安全 更强大的 Web 服务器 在本指南中
  • ThreadPoolExecutor - Java 线程池示例

    Java线程池管理工作线程池 它包含一个队列 使任务等待执行 我们可以用ThreadPoolExecutor在Java中创建线程池 Java线程池管理Runnable线程的集合 工作线程执行队列中的可运行线程 java util concu
  • 使用 Docker Compose 将 Node.js 应用程序容器化以进行开发

    介绍 如果您正在积极开发应用程序 请使用Docker可以简化您的工作流程以及将应用程序部署到生产的过程 在开发中使用容器可以带来以下好处 环境是一致的 这意味着您可以为项目选择所需的语言和依赖项 而不必担心系统冲突 环境是隔离的 可以更轻松
  • 在 JavaScript 中使用位运算符

    介绍 虽然 Javascript 中的按位运算符几乎没有受到任何关注 但它们实际上非常强大并且用途广泛 它们被认为可以更快地进行数值计算和转换 我们可以利用它们来替代某些复杂的编码场景 并使我们的代码更具可读性 在本教程结束时 您将基本了解
  • 命令设计模式

    命令模式是行为设计 模式之一 命令设计模式用于实现松耦合在请求 响应模型中 命令模式 In command pattern the request is send to the invoker and invoker pass it to
  • 如何在 CentOS 6 上设置 Apache 虚拟主机

    Status 已弃用 本文介绍不再受支持的 CentOS 版本 如果您当前运行的服务器运行 CentOS 6 我们强烈建议您升级或迁移到受支持的 CentOS 版本 Reason CentOS 6 于 2020 年 11 月 30 日达到生
  • 如何在 Ubuntu 18.04 上安装 Anaconda [快速入门]

    介绍 Anaconda 专为数据科学和机器学习工作流程而设计 是一款开源包管理器 环境管理器以及 Python 和 R 编程语言的分发版 本教程将指导您在 Ubuntu 18 04 服务器上安装 Anaconda 有关本教程的更详细版本以及
  • 如何在 Ubuntu 14.04 上安装和配置 OSSEC 安全通知

    介绍 您如何跟踪服务器上的授权和未经授权的活动 OSSEC 是一种可以安装在服务器上以跟踪其活动的工具 OSSEC 是一种开源 基于主机的入侵检测系统 HIDS 它执行日志分析 完整性检查 Windows 注册表监控 rootkit 检测
  • 如何在 Ubuntu 22.04 上安装和保护 Grafana

    介绍 Grafana是一种开源数据可视化和监控工具 可与来自以下来源的复杂数据集成普罗米修斯 InfluxDB Graphite and 弹性搜索 Grafana 允许您为数据创建警报 通知和临时过滤器 同时还可以通过内置共享功能更轻松地与
  • 如何在 Ubuntu 12.10 上使用 Nginx 设置 HTTP 身份验证

    什么是Red Means 用户需要输入或自定义的行将位于red在本教程中 其余的大部分应该是可复制和粘贴的 关于 Nginx Nginx 发音为 engine x 是一个 HTTP 和反向代理服务器 以及邮件代理服务器 由 Igor Sys
  • 如何在零停机的情况下将 WordPress 从共享主机迁移到云服务器

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级