Skip to content

附录2 ​

运维部署实训文档 ​

基于阿里云ECS的LNMP环境与WordPress博客部署 ​

项目内容
文档编号OPS-LAB-2026-001
版本号V1.0
适用课程运维工程师实训 / 网站架构部署
编制人[姓名]
实训周期[开始日期] - [结束日期]
密级内部教学公开

文档变更记录 ​

版本变更日期变更内容变更人
V1.02026-07-04参照教学大纲完成初稿创建[姓名]

目录 ​

  1. 项目背景与架构选型
  2. 阿里云ECS服务器申请与配置(实操)
  3. Linux操作系统与基础命令(实操)
  4. LNMP环境部署(实操)
  5. WordPress安装与配置(实操)
  6. 部署流程梳理与分组实操
  7. 常见问题排查思路

一、项目背景与架构选型 ​

1.1 项目背景 ​

本次实训旨在通过手动部署的方式,在阿里云云服务器ECS上搭建一套生产级别的LNMP环境,并部署全球市场占有率第一的CMS系统(内容管理系统)——WordPress,最终实现博客站点的公网访问。

1.2 核心技术理论 ​

  • Web服务工作原理:浏览器(Client)通过HTTP协议发起请求 -> Web服务器(Nginx)接收 -> 动态请求转发给应用服务器(PHP-FPM) -> 应用服务器操作数据库(MySQL)并渲染数据 -> 返回HTML给浏览器。
  • 为什么选择LNMP而不是LAMP?
    • LNMP(Linux + Nginx + MySQL + PHP):Nginx处理高并发静态资源能力极强,内存占用低,适合高并发访问场景。
    • LAMP(Linux + Apache + MySQL + PHP):Apache功能模块丰富,但处理高并发时资源消耗较大。
    • 结论:对于云服务器资源有限且追求高效能的情况,LNMP是更优选择。

1.3 架构示意图 ​

text
用户浏览器 --> 阿里云安全组(80端口) --> Nginx (静态资源直接返回)
                                    --> Nginx (动态请求) --> PHP-FPM (:9000) --> MySQL (数据库读写)

二、阿里云ECS服务器申请与配置(实操) ​

2.1 为什么选择阿里云ECS? ​

  • 高可用性:阿里云提供99.95%的服务可用性承诺(SLA)。
  • 弹性伸缩:根据业务负载随时升降配置(CPU/内存)。
  • 安全防护:自带DDoS基础防护和安全组(防火墙)功能。

2.2 SSH是什么? ​

SSH(Secure Shell)是一种加密的网络传输协议,用于在不安全的网络中实现安全的远程登录和命令执行。我们后续将通过SSH协议远程管理ECS服务器。

2.3 第一步:注册与账号准备 ​

  • 新用户免费试用:首次注册用户可领取3个月免费ECS(需实名认证)。
  • 学生认证特惠:完成学生认证后享受“学生机”专属折扣(9.9元/月)。
  • 计费模式选择:
    • 按量付费:按小时计费,随时释放,适合短期实验(实验结束后务必立即释放,避免持续扣费!)。
    • 包年包月:提前预付费,适合长期稳定运行的生产项目。

2.4 第二步:创建ECS实例(关键配置清单) ​

登录阿里云控制台 -> 云服务器ECS -> 创建实例,参考以下配置:

配置项推荐规格说明
付费模式按量付费 / 包年包月实训建议按量付费,用完即删
地域华东1(杭州)/ 华北2(北京)选择距离自己最近的地域以降低网络延迟
实例规格2核(vCPU) 2GiB 内存(ecs.u1-c1m2.large)最低配置:1核1GiB(运行LNMP+WP勉强够用)
操作系统CentOS 7.9 64位必须与教程版本严格一致
系统盘40GiB ESSD云盘满足基本系统与网站文件存储
公网IP分配公网IPv4地址勾选“分配公网IPv4地址”
带宽计费按固定带宽 1Mbps或“按使用流量”(测试流量较少,更省钱)

2.5 第三步:配置安全组(非常重要!) ​

安全组相当于云服务器的虚拟防火墙。创建实例时或创建后,必须在安全组中放行以下端口:

协议类型端口范围授权对象(源IP)用途说明
TCP220.0.0.0/0SSH远程连接(如只允许自己IP登录,可改为具体IP)
TCP800.0.0.0/0HTTP网站访问(必须开放,否则外网无法看网站)
TCP4430.0.0.0/0HTTPS加密访问(后续SSL证书配置用)

注意:如果安全组未放行80端口,即使服务器内部服务正常运行,外网也无法访问网站!

2.6 第四步:远程连接服务器 ​

  1. 在ECS实例列表找到你的公网IP。
  2. 打开本地终端(Windows用CMD/PowerShell,Mac/Linux用Terminal)。
  3. 执行命令:
    bash
    ssh root@你的服务器公网IP
  4. 输入创建实例时设置的root密码,看到 [root@iZbp1xxx ~]# 即表示连接成功。

三、Linux操作系统与基础命令(实操) ​

3.1 Linux操作系统介绍 ​

  • Linux是什么:一套开源的、类Unix的操作系统内核,我们使用的CentOS是基于该内核的发行版。
  • Linux目录结构详解(FHS标准):
目录全称/用途实训重点关注
/根目录一切文件的起点
/root超级管理员的家目录登录后默认所在位置
/etc配置文件存放地Nginx、PHP、MySQL的配置都在这里
/var经常变化的文件(日志、缓存)网站日志 /var/log/nginx
/usr用户程序与数据软件默认安装位置
/usr/share/nginx/htmlNginx默认网站根目录稍后要把WordPress放这里
  • Linux的设计哲学:“一切皆文件”(硬件、进程、网络都以文件形式存在)+ “小型、单一用途的程序组合完成复杂任务”。

3.2 文件与目录操作命令(核心命令) ​

命令语法示例作用(必会!)
pwdpwd显示当前所在绝对路径
cdcd /etc切换目录
ls -lls -l /home列出目录下文件详情
mkdirmkdir test创建目录
touchtouch a.txt创建空文件或更新时间戳
cpcp a.txt b.txt复制文件
mvmv a.txt /tmp/移动文件或重命名
rm -rfrm -rf ./test强制删除(极其危险,慎用!)
vimvim /etc/hosts文本编辑器(按 i 编辑,按 ESC 退出编辑,输入 :wq 保存退出)

3.3 命令学习小技巧 ​

  • tab 键:自动补全命令或路径。
  • history:查看历史命令。
  • 命令 --help:查看帮助文档(如 ls --help)。

3.4 综合实操练习(课前/课中自测) ​

请同学们连接服务器后,依次执行以下操作,体验Linux命令:

bash
# 1. 创建实训目录
mkdir /root/lab

# 2. 进入目录
cd /root/lab

# 3. 创建一份服务器信息文件
echo "Server IP: 你的IP" > server_info.txt

# 4. 查看文件内容
cat server_info.txt

# 5. 复制文件到上级目录
cp server_info.txt ../

# 6. 查看当前目录大小
du -sh .

四、LNMP环境部署(实操) ​

4.1 LNMP架构理论回顾 ​

LNMP是一组开源软件的组合,用于提供动态网站服务。数据流:Nginx(入口) -> PHP-FPM(处理程序逻辑) -> MySQL(存储数据)。

4.2 实操第一步:更新系统软件包 ​

保持系统软件包与安全补丁为最新状态:

bash
yum update -y

4.3 实操第二步:安装Nginx ​

CentOS 7.9默认YUM源不含Nginx,需添加官方源:

bash
# 添加Nginx官方YUM源
rpm -Uvh https://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# 安装Nginx
yum install -y nginx

# 启动并设置开机自启
systemctl start nginx
systemctl enable nginx

# 验证安装
nginx -v

4.4 实操第三步:安装MariaDB / MySQL数据库 ​

由于MySQL被Oracle收购后的商业限制,CentOS默认源使用兼容的MariaDB(完全兼容MySQL语法)。本次实训选用MariaDB(更轻量、开源)。

bash
# 安装MariaDB服务端和客户端
yum install -y mariadb-server mariadb

# 启动并设置开机自启
systemctl start mariadb
systemctl enable mariadb

# 执行安全初始化脚本(设置root密码、删除匿名用户、禁止远程root登录)
mysql_secure_installation

按提示操作:输入当前密码(初次为空直接回车) -> 设置root密码(牢记!) -> 一路输入 Y 确认删除匿名用户、禁止远程登录、删除测试库、重新加载权限。

4.5 实操第四步:安装PHP(7.4版本) ​

CentOS 7.9默认PHP版本为5.4,太老,需更换Remi仓库获取PHP 7.4。

bash
# 安装EPEL源和Remi源
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# 启用PHP 7.4仓库并安装(包含WordPress所需全部扩展)
yum install -y --enablerepo=remi-php74 php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-json php-zip php-curl

# 启动PHP-FPM并设置开机自启
systemctl start php-fpm
systemctl enable php-fpm

# 验证版本
php -v

4.6 实操第五步:配置Nginx支持PHP ​

编辑Nginx站点配置文件:

bash
vim /etc/nginx/conf.d/blog.conf

粘贴以下内容(将your_server_ip换成你的真实公网IP):

nginx
server {
    listen 80;
    server_name your_server_ip;   # 如果有域名,改为域名
    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # 将PHP请求转发给PHP-FPM处理
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

保存退出(:wq)。

4.7 实操第六步:测试配置并重载 ​

bash
# 检查Nginx配置语法是否有误
nginx -t

# 重载Nginx使配置生效
systemctl reload nginx

# 创建PHP探针文件测试解析是否正常
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php

此时在浏览器访问 http://你的IP/info.php,看到PHP扩展信息页面即为LNMP环境搭建成功!

五、WordPress安装与配置(实操) ​

5.1 全球第一CMS:WordPress介绍 ​

  • 江湖地位:全球互联网中超过 40% 的网站由WordPress驱动(市占率第一)。
  • 底层技术架构:经典的LNMP/LAMP栈(PHP + MySQL)。
  • 核心优势:
    1. 生态无敌:拥有超过6万个插件和数万款主题,几乎能实现任何功能(电商、论坛、企业站)。
    2. 上手极简:无需懂代码,后台可视化编辑,拖拖拽拽即可发布内容。
    3. 持续迭代:全球开发者社区活跃,安全更新频繁。

5.2 WordPress部署实操第一步:创建专属数据库与用户 ​

bash
# 登录MySQL命令行
mysql -u root -p

执行以下SQL命令:

sql
-- 创建数据库(名字任意,但记录好)
CREATE DATABASE wordpress;

-- 创建专用用户(密码请设置复杂一点,不要用弱口令)
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'YourStrongP@ssw0rd';

-- 赋予该用户对wordpress数据库的全部权限
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';

-- 刷新权限表
FLUSH PRIVILEGES;

-- 退出
EXIT;

5.3 第二步:下载并解压WordPress源码包 ​

bash
# 进入网站根目录
cd /usr/share/nginx/html

# 下载最新中文版WordPress
wget https://cn.wordpress.org/latest-zh_CN.zip

# 解压(如果没有unzip,先装一下:yum install -y unzip)
unzip latest-zh_CN.zip

# 将wordpress目录下的所有文件移动到当前根目录
mv wordpress/* ./
rm -rf wordpress latest-zh_CN.zip

# 修改文件权限,使Nginx用户有读写权限(用于安装插件/主题)
chown -R nginx:nginx /usr/share/nginx/html
chmod -R 755 /usr/share/nginx/html

5.4 第三步:通过Web引导界面完成核心配置 ​

  1. 打开浏览器,访问 http://你的服务器公网IP。
  2. 选择安装语言(简体中文)。
  3. 点击“现在就开始!”。
  4. 填入刚才在数据库中创建的信息:
    • 数据库名:wordpress
    • 用户名:wpuser
    • 密码:YourStrongP@ssw0rd
    • 数据库主机:localhost
    • 表前缀:wp_(保持默认)
  5. 点击“提交” -> “运行安装”。
  6. 填入站点信息:
    • 站点标题:我的实训博客
    • 用户名:admin(或自定义)
    • 密码:自动生成(务必复制保存!或改为复杂密码)
    • 电子邮箱:填入自己的邮箱
  7. 点击“安装WordPress”,成功后自动跳转到后台登录界面。

5.5 第四步:登录后台并发布第一篇博文 ​

  1. 使用刚才设置的管理员账号密码登录后台(http://IP/wp-admin)。
  2. 在左侧菜单点击“文章” -> “写文章”。
  3. 输入标题(如“Hello LNMP!”)和内容(“这是我的第一个云上博客”)。
  4. 点击右侧“发布”按钮。
  5. 访问 http://你的IP 查看首页,博文已经显示!

5.6 第五步(企业级调优):突破上传与内存限制(防坑加餐) ​

WordPress默认上传文件大小限制为2MB,且安装插件时可能提示需要FTP信息。需要进行以下优化:

1. 修改PHP上传与执行上限

bash
vim /etc/php.ini

找到以下配置项并修改(可用 /关键词 快速搜索):

ini
upload_max_filesize = 50M
post_max_size = 50M
memory_limit = 128M
max_execution_time = 300

保存退出,重启PHP-FPM使生效:systemctl restart php-fpm。

2. 免除FTP提示,允许直接热更新 编辑WordPress配置文件:

bash
vim /usr/share/nginx/html/wp-config.php

在 /* 好了,请不要再继续编辑。... */ 这一行之前,插入以下代码:

php
define('FS_METHOD', 'direct');

保存后,再去后台安装主题/插件时,便不再需要FTP账户。

六、部署流程梳理与分组实操 ​

6.1 整体部署流程脑图梳理 ​

text
申请ECS并配置安全组
        |
SSH登录服务器
        |
更新系统(YUM Update)
        |
安装Nginx + 启动
        |
安装MariaDB + 安全初始化
        |
安装PHP 7.4 + PHP-FPM + 扩展
        |
配置Nginx虚拟主机(blog.conf) + 重载
        |
创建WordPress数据库及专用用户
        |
下载并解压WordPress源码到根目录
        |
浏览器访问IP -> 填写数据库信息 -> 完成安装
        |
后台配置主题/插件 -> 发布博文 -> 公网验证成功

6.2 分组实操安排 ​

  • 分组形式:2-3人一组(小组内分工:一人负责ECS申请与安全组配置,一人负责命令行部署,一人负责WordPress配置与文档记录)。
  • 实践任务要求:
    1. 每人/每组必须独立完成从ECS申请到博客发布的完整流程。
    2. 记录操作过程中遇到的所有报错信息及解决办法。
    3. 在博客上发布一篇不低于200字的实训心得文章。

6.3 课后作业 ​

  1. 命令强化:使用 mkdir、touch、cp、mv、rm 在自己家目录下模拟创建 /project/{css,js,images} 目录结构。
  2. 理论思考:简述当用户在浏览器输入 http://你的IP 并按下回车后,数据包在LNMP架构中的流转过程。
  3. 扩展挑战:尝试给博客更换一个免费主题。

七、常见问题排查思路 ​

问题现象可能原因排查与解决方法
浏览器无法访问IP,页面空白/超时阿里云安全组未放行80端口去ECS控制台安全组规则中添加“入方向”80端口
浏览器显示 Nginx 403 Forbidden网站根目录没有index文件;或权限不足chown -R nginx:nginx /usr/share/nginx/html
浏览器显示 Nginx 404 Not FoundNginx配置中 root 路径写错检查 /etc/nginx/conf.d/blog.conf 中的 root 路径是否正确
访问.php文件显示源码(下载文件)Nginx未配置PHP转发,或PHP-FPM未启动检查blog.conf中是否有 location ~ \.php$;执行 systemctl status php-fpm
WordPress安装提示“连接数据库错误”数据库名/用户/密码写错;或MariaDB未启动核对wp-config.php;systemctl status mariadb;用命令行测试登录 mysql -u wpuser -p
上传主题/插件提示“需要FTP凭证”文件目录权限不属于Nginx用户,或未配置FS_METHOD执行 chown -R nginx:nginx /html;或在wp-config.php添加 define('FS_METHOD','direct');
上传图片提示“超出最大上传大小”PHP的 upload_max_filesize 限制修改 /etc/php.ini 中上述参数,重启php-fpm

文档结束


提交说明:请同学们将本文档中的 [姓名]、[日期] 替换为实际内容,并在文末附上关键步骤的操作截图(如:ECS控制台实例截图、SSH连接成功截图、phpinfo()页面截图、博客前台发布成功截图),作为本次实训的最终交付物。

基于 Vite 强力驱动 | 纯静态轻量托管