【AWS+Wordpress】将本地 WordPress 网站部署到AWS

前言

自学笔记,解决问题为主,亲测有效,欢迎补充。

  • 本地开发机:macOS(Sequoia 15.0.1)

  • 服务器:AWS EC2(Amazon Linux 2023)

  • 目标:从本地迁移 WordPress 到云端,并配置 HTTPS + 域名

流程图(理清思路,详细步骤追更)

0.  [AWS 准备] 注册 AWS 并创建 EC2 实例

                      ↓

1.  [生成安装包:用 Duplicator 将本地 WordPress 打包成 zip 和 php 文件,便于迁移。] 

            ↓

2.  [上传文件:通过 SCP/FTP 将安装包传到云服务器(EC2)。]

            ↓

3.  [搭建环境:安装 Apache(网页服务器)、PHP(运行环境)、MySQL(数据库)]

                      ↓

4.  [安装 WordPress:创建数据库后,浏览器运行 installer.php 完成安装。]

                      ↓

5.  [配置 HTTPS:用 Certbot 获取 SSL 证书,启用安全访问(HTTPS)。]

                      ↓

6.  [绑定域名:设置 DNS 解析,使域名指向服务器,实现域名访问。]

核心步骤(必做):0→1→2→3→4(完成即可通过 IP 访问网站)。
优化步骤(推荐):5→6(更安全、更友好)。


🔧准备阶段:[AWS 准备] 注册 AWS 并创建 EC2 实例

作用:搭建云服务器环境,作为 WordPress 的运行平台。

1.注册 AWS 账号(需绑定信用卡)。

2.创建 EC2 实例:

  • 选择 Amazon Linux 2023 系统。
  • 实例类型推荐 t2.micro(免费 tier 可用)。
  • 配置安全组(开放 22(SSH)、80(HTTP)、443(HTTPS))。
  • 下载 密钥对(.pem 文件),用于后续连接。

3.获取实例公网 IP(IPv4 Public IP)


🔧 第一步:在本地 WordPress 中使用 Duplicator 生成安装包

1. 安装并启用插件:

登录本地 WordPress 后台,安装 Duplicator 插件。

2. 创建网站包:

• 在 Duplicator 菜单中选择 “Create New”

• 按提示打包当前网站内容,生成两个文件:

• .zip 安装包(包含 WordPress 文件和数据库)

• installer.php 安装脚本


☁️ 第二步:将安装文件上传到 EC2 实例

1. 启动并连接 EC2 实例(Amazon Linux 或 Ubuntu)。

2. 使用 SCP 或 FTP 将以下两个文件上传至 /var/www/html:

• installer.php

• *.zip(Duplicator 打包生成)

示例(SCP)命令:

scp -i your-key.pem installer.php your-package.zip ec2-user@your-ec2-ip:/var/www/html


🏗️ 第三步:在 EC2 上安装 Apache + PHP + MySQL

以 Amazon Linux 为例:

sudo yum update -y
sudo yum install -y httpd php php-mysqlnd mysql-server
sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl enable mysqld
sudo systemctl start mysqld


🗃️ 第四步:设置 MySQL 数据库 & 运行 installer.php

1. 登录 MySQL:

sudo mysql -u root

2. 创建数据库和用户:

CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. 打开浏览器,访问你的实例:

http://your-ec2-ip/installer.php

4. 按照 Duplicator 的安装向导完成恢复。


最后两步是增强型操作,非必需但推荐

🔐 第五步:安装 Certbot 并配置 HTTPS:

不加也能访问,但 HTTPS 能提升安全性(防劫持)和 SEO。

1. 安装 Certbot:

sudo yum install -y certbot python3-certbot-apache

2. 获取免费 HTTPS 证书并自动配置 Apache:

sudo certbot --apache

3. 按提示选择你要启用 HTTPS 的域名。


🌍 第六步:设置 DNS → 使用域名访问网站

不用域名的话,只能用服务器 IP 访问(不专业且难记)。

1. 登录你的 DNS 管理服务(如 Cloudflare、阿里云、GoDaddy)。

2. 添加一条 A 记录:

• 主机名:@ 或 www

• 值:你的 EC2 公网 IPv4 地址

3. 等待 DNS 生效后,在浏览器中输入你的域名:

https://your-domain.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/82208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始:用PyTorch构建CIFAR-10图像分类模型达到接近1的准确率

为了增强代码可读性,代码均使用Chatgpt给每一行代码都加入了注释,方便大家在本文代码的基础上进行改进优化。 本文是搭建了一个稍微优化了一下的模型,训练200个epoch,准确率达到了99.74%,简单完成了一下CIFAR-10数据集…

C++复习类与对象基础

类的成员函数为什么需要在类外定义 1.1 代码组织与可读性​ ​类内定义​:适合 ​短小简单的函数​(如 getter/setter),能直观体现类的接口设计。 ​类外定义​:当函数体较复杂时,将实现移到类外&#xf…

【计算机网络】Cookie、Session、Token之间有什么区别?

大家在日常使用浏览器时可能会遇到:是否清理Cookie?这个问题。 那么什么是Cookie呢?与此相关的还有Session、Token这些。这两个又是什么呢? 本文将对这三个进行讲解区分,如果对小伙伴有帮助的话,也请点赞、…

Python 3.x 内置装饰器 (4) - @dataclass

dataclass 是Python 3.7 引入的一个装饰器,用来简化创建数据类(主要存储数据的类)的过程。它会自动为类生成一些常用的方法,比如: __init__: 对象的初始化 __repr__: 定义类的官方字符串表示。 __eq__: 定义两个对象…

第一次被AI指点出文章的问题

二十年,几乎从未收到过这种程度的反馈。大部分意见都是有效的批评。 1.前言 关于链家左晖的一篇评论稿 这篇文章有什么问题吗?所有方面都可以谈,包括叙述,用词,重复,真实性,偏见,…

var、let、const三者之间的区别和使用

var、let、const 都是用于声明变量的关键字,可以通过作用域、可变性、变量提升几个方面进行区分; 1,作用域 1)var的属于函数作用域,只能在函数内使用。若在函数外部声明变量,会变为全局变量; …

Consumer Group的作用是什么?Rebalance的触发条件有哪些? (实现消费者负载均衡;消费者加入/离开、订阅Topic变化等)

好的,我现在需要回答用户关于Kafka Consumer Group和Rebalance的问题。首先,用户问的是Consumer Group的作用以及Rebalance的触发条件。根据之前的对话历史,用户已经了解了Kafka的基本组件、消息保留策略、顺序性保证等,现在的问题…

出一期Source Insigned的使用教程

1. 创建新项目 打开 Source Insight,点击菜单栏的 Project > New Project。在弹出的窗口中,输入项目名称(建议与项目内容相关,便于识别)。指定项目数据文件的存储路径(即 Source Insight 配置文件保存的…

A. Row GCD(gcd的基本性质)

Problem - 1458A - Codeforces 思路: 首先得知道gcd的两个基本性质: (1) gcd(a,b)gcd(a,|b-a|) (2) gcd(a,b,c)gcd(a,gcd(b,c)) 结合题目所给的a1bj,a2bj...... anbj 根据第一条性质得到: gcd(a1bj,a2bj)gcd(…

ES6入门---第三单元 模块三:async、await

async function fn(){ //表示异步:这个函数里面有异步任务 let result await xxx //表示后面结果需要等待 } 读取文件里数据实例: const fs require(fs);//简单封装 fs封装成一个promise const readFile function (fileName){return…

如何在 C# 和 .NET 中打印 DataGrid

DataGrid 是 .NET 架构中一个功能极其丰富的组件,或许也是最复杂的组件之一。写这篇文章是为了回答“我到底该如何打印 DataGrid 及其内容”这个问题。最初即兴的建议是使用我的屏幕截图文章来截取表单,但这当然无法解决打印 DataGrid 中虚拟显示的无数行…

C语言 指针(5)

目录 1.冒泡排序 2.二级指针 3.指针数组 4.指针数组模拟二级数组 1.冒泡排序 1.1 基本概念 冒泡排序(Bubble Sort) 是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元 素,如果它们的顺序错误就把它…

15前端项目----用户信息/导航守卫

登录/注册 持久存储用户信息问题 退出登录导航守卫解决问题 持久存储用户信息 本地存储:(在actions中请求成功时) 添加localStorage.setItem(token,result.data.token);获取存储:(在user仓库中,state中tok…

RSS 2025|斯坦福提出「统一视频行动模型UVA」:实现机器人高精度动作推理

导读 在机器人领域,让机器人像人类一样理解视觉信息并做出精准行动,一直是科研人员努力的方向。今天,我们要探讨的统一视频行动模型(Unified Video Action Model,UVA),就像给机器人装上了一个“…

基于论文的大模型应用:基于SmartETL的arXiv论文数据接入与预处理(四)

上一篇介绍了基于SmartETL框架实现arxiv采集处理的基本流程,通过少量的组件定制开发,配合yaml流程配置,实现了复杂的arxiv采集处理。 由于其业务流程复杂,在实际应用中还存在一些不足需要优化。 5. 基于Kafka的任务解耦设计 5.…

Fiori学习专题三十五:Device Adaptation

由于在类似于手机的小面板上显示时&#xff0c;我们为了留出更多空间展示数据&#xff0c;可以将一些控件折叠。 1.修改HelloPanel.view.xml&#xff0c;加入expandable“{device>/system/phone}” expanded"{ !${device>/system/phone} <mvc:ViewcontrollerNam…

【记录】HunyuanVideo 文生视频工作流

HunyuanVideo 文生视频工作流指南 概述 本指南详细介绍如何在ComfyUI中使用腾讯混元HunyuanVideo模型进行文本到视频生成的全流程操作&#xff0c;包含环境配置、模型安装和工作流使用说明。 参考&#xff1a;https://comfyui-wiki.com/zh/install/install-comfyui/install-c…

统一返回JsonResult踩坑

定义了一个统一返回类&#xff0c;但是没有给Data 导致没有get/set方法&#xff0c;请求一直报错 public class JsonResult<T> {private int code;private String message;private T data;public JsonResult() {}public JsonResult(int code, String message, T data) {…

dubbo-token验证

服务提供者过滤器 import java.util.Map; import java.util.Objects;/*** title ProviderTokenFilter* description 服务提供者 token 验证* author zzw* version 1.0.0* create 2025/5/7 22:17**/ Activate(group CommonConstants.PROVIDER) public class ProviderTokenFilt…

沃伦森电气高压动态无功补偿装置助力企业电能优化

在工业生产的复杂电能环境中&#xff0c;电能质量直接影响企业的生产效率和运营成本。XX光伏科技有限公司作为一家快速发展的制造企业&#xff0c;随着生产规模的不断扩大&#xff0c;其内部电网面临功率因数过低、电压波动频繁等问题&#xff0c;导致供电部门罚款增加、设备故…