万字长文:在 CentOS 7.9 上部署 Nginx + MySQL 8.0 + Redis 完整指南(VMware & 云服务器双环境适配)
恭喜!你已经在 CentOS 7.9 上完成了 LNMP(Nginx + MySQL + PHP)基础设施的搭建(以 Nginx + MySQL 8.0 + Redis 作为核心件)。步骤关键操作成果换 YUM 源替换为阿里云 CentOS Vault 归档源解决了 CentOS 7 停止维护后 yum 不可用的问题安装 Nginx通过 EPEL 或官方源安装提供 HTTP 服务,端口 80 可正
目录
引言
对于很多刚入行的后端开发者或运维新手来说,“在 Linux 上搭建 Nginx + MySQL + Redis 环境”是一个必过的基础关。然而,由于 CentOS 7 已于 2024 年 6 月 30 日停止官方维护,默认的 YUM 源已经失效-,导致“照着旧教程敲命令却报 Cannot find a valid baseurl”成为经典翻车现场。
本文将从系统镜像下载 → 虚拟机安装 → YUM 国内源配置 → Nginx / MySQL 8.0 / Redis 安装与基础安全配置,给出一套 2026 年仍可稳定复现的完整流程——
-
VMware 虚拟机环境:从 0 开始装系统,新手也能一步步跟着做;
-
云服务器环境:云厂商通常支持在购买时选择
CentOS 7.9公共镜像,可开机后直接跳至【第五章】开始操作。
一、环境说明
1.1 软件版本一览
| 组件 | 版本 | 安装方式 | 国内源方案 |
|---|---|---|---|
| 操作系统 | CentOS 7.9(64 位) | ISO 安装 / 云镜像 | 阿里云开源镜像站 |
| YUM 基础源 | CentOS Vault | wget 阿里云 repo | 阿里云 CentOS Vault 归档源 |
| Nginx | 1.20.x(EPEL)或最新 | yum | 阿里云 EPEL 镜像 |
| MySQL | 8.0.x | yum(MySQL 官方仓库) | 清华大学 TUNA 镜像 |
| Redis | 6.x / 7.x | yum(Remi 仓库) | 清华大学 TUNA 镜像 |
1.2 前置知识
-
会使用基本的 Linux 命令(
cd、ls、vi等); -
对 vim 编辑器有基础了解(知道按
i进入编辑模式、:wq保存退出即可); -
有一台机器:物理机 / 云服务器 / VMware 虚拟机均可。
云服务器用户特别提示:各云厂商(阿里云、华为云、腾讯云等)在控制台选择镜像时,均提供
CentOS 7.9 64位这一选项,塔基云也一样。选定后开机即可,无需执行【第二章】和【第三章】,直接跳到【第四章】开始配置。
二、获取 CentOS 7.9 系统镜像
2.1 国内高速镜像下载(推荐)
由于 CentOS 官方已停止维护,建议直接使用国内镜像站下载,速度快且稳定。
下载地址(复制到浏览器或下载工具):
| 镜像站 | 下载地址 | 推荐场景 |
|---|---|---|
| 阿里云(首选) | http://mirrors.aliyun.com/centos/7/isos/x86_64/ |
国内全网通用- |
| 清华大学 TUNA | https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/ |
教育网用户 |
| 华为云 | https://mirrors.huaweicloud.com/centos/7/isos/x86_64/ |
华为云 ECS 用户 |
选择哪个文件?
进入目录后,推荐下载 CentOS-7-x86_64-DVD-2009.iso——这是 CentOS 7.9 的完整安装镜像(约 4.4 GB),包含图形界面和大部分常用软件包,适合新手安装。
提示:下载完成后,建议校验文件的 SHA256 值,确保镜像未被篡改。各镜像站均会提供对应的校验文件(如
sha256sum.txt),可使用certutil -hashfile 文件名 SHA256(Windows)或sha256sum 文件名(Linux/macOS)进行校验。若你使用的百度网盘等非官方渠道下载,更应养成校验习惯。
2.2 云服务器直接选配
如果你购买的是云服务器(阿里云、华为云、腾讯云、塔基信息等),无需下载镜像,直接在购买页或重装系统时,操作系统镜像 → 公共镜像 → 选择 CentOS 7.9 64位 即可。
扩展阅读——为什么仍然是 CentOS 7.9?
尽管 CentOS 7 已停止官方安全更新,阿里云、华为云等国内云厂商均提供了自维护的 CentOS 7.9 公共镜像,并持续提供安全补丁支持,因此依然可作为生产环境使用-。但需注意:
生产环境:建议配合云厂商提供的安全加固方案(如云安全中心、系统漏洞扫描等)使用。
新项目选型:优先考虑 CentOS Stream 9、Rocky Linux 9.x 或 Ubuntu 22.04 LTS 等仍在维护期的发行版。
本文的定位:本文适用于学习、测试、兼容旧项目、公司指定系统等场景,帮助你在 CentOS 7.9 上快速搭好 Nginx + MySQL 8.0 + Redis 环境。
三、VMware 虚拟机安装 CentOS 7.9
本节适用人群:使用 VMware 虚拟机学习的同学。
云服务器用户:请直接跳到【第四章】。
步骤 1:下载并安装 VMware Workstation
-
前往 VMware 官网下载 VMware Workstation Pro(建议 17.x 版本);
-
安装过程中保持默认选项即可。
步骤 2:创建新虚拟机
-
打开 VMware,点击 “创建新的虚拟机” → 选择 “典型(推荐)”;
-
选择 “稍后安装操作系统”,点击“下一步”;
-
客户机操作系统选 “Linux” → 版本选 “CentOS 7 64 位”;
-
虚拟机名称自定(如“CentOS7-Dev”),位置建议选一个剩余空间大于 30GB 的分区;
-
磁盘容量建议 ≥ 20GB,勾选 “将虚拟磁盘存储为单个文件”;
-
点击“自定义硬件”:内存建议 ≥ 2GB(以后可以调),处理器建议 ≥ 2 核;
-
在 “CD/DVD” 中,选择“使用 ISO 镜像文件” → 浏览载入刚才下载的
CentOS-7-x86_64-DVD-2009.iso; -
网络适配器建议选 “NAT 模式”(虚拟机可共享宿主机网络)。
步骤 3:安装系统
-
启动虚拟机,在引导界面选择 “Install CentOS 7”;
-
语言选择 “English (United States)”(强烈不建议选中文,后续命令行环境下会出现乱码);
-
在 “INSTALLATION SUMMARY” 界面,按顺序设置以下 3 项:
-
DATE & TIME:点地图选 Asia / Shanghai,打开 NTP(Network Time Protocol,网络时间协议) 开关(自动同步网络时间);
-
INSTALLATION DESTINATION:点进去选中磁盘,直接点 “Done”(采用自动分区);
-
NETWORK & HOST NAME:将以太网开关拨到 “ON”,确保虚拟机可以上网。
-
-
点击 “Begin Installation” → 安装过程中设置 ROOT 密码(务必牢记);
-
安装完成后点击 “Reboot” 重启。
云服务器用户注意:此处是 VMware 的安装流程。如果你是云服务器用户,先阅读下面的【第四章】。
以下【第五章】及之后的步骤对 VM 和云服通用,不再区分。
四、云服务器环境准备(公共步骤)
本节适用人群:使用云服务器的同学。
VMware 虚拟机同学:无需执行本节,直接跳至【第五章】。
云服务器用户通常有两种方式登录系统:
| 方式 | 适用场景 | 说明 |
|---|---|---|
| Web 控制台(VNC) | 初次使用、网络不通排查 | 在云厂商控制台点击"远程连接"即可 |
| SSH 客户端 | 日常运维 | 使用 Xshell / MobaXterm / 终端直接连接公网 IP |
获取公网 IP 并登录
-
登录云厂商控制台,找到你的云服务器实例;
-
复制 公网 IP 地址;
-
在本地终端执行:
# 格式:ssh root@你的公网IP
# 示例:
ssh root@123.456.789.0
首次登录会提示确认“指纹”,输入 yes 后按回车,然后输入云厂商提供的初始 root 密码即可。
换源说明
大部分云厂商(如阿里云、华为云)会自动为 ECS 实例配置内部镜像源,速度可能已经很快。但你仍然可以按【第六章】的步骤换成阿里云 CentOS Vault 源,确保后续安装组件时不会因源失效而报错。
小提示:如果使用阿里云 ECS,可以换用 ECS 专属的内网镜像地址
mirrors.cloud.aliyuncs.com,下载速度更快且不占用公网带宽-。
以下【第五章】及之后的步骤,VMware 虚拟机与云服务器通用。
五、基础环境配置(VM & 云服通用)
注意:以下所有命令均以
root用户身份执行。若不是 root 用户,请在每条命令前加sudo。检查当前用户:
whoami # 输出 "root" 则无需切换;否则执行: sudo su -
5.1 网络连通性检查
# 测试能否正常访问外网(通的话会显示丢包率 0%)
ping -c 4 www.baidu.com
5.2 关闭 SELinux(临时 + 永久)
什么是 SELinux? SELinux(Security-Enhanced Linux)是 Linux 内核中的一个强制访问控制系统。开启状态下,它会限制 Nginx、Redis 等服务的文件读写和网络访问权限。
为什么在开发/测试环境关闭? SELinux 的策略规则非常严格,学习过程中可能导致服务莫名无法启动或访问被拒(报
Permission denied),排查成本极高。生产环境建议保留并正确配置策略,但学习阶段先关闭会更顺畅。
# 查看当前状态
getenforce
# 临时关闭(重启后失效)
setenforce 0
# 永久关闭——编辑配置文件
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
# 验证修改结果(应显示 SELINUX=disabled)
grep ^SELINUX= /etc/selinux/config
5.3 防火墙策略配置
CentOS 7 默认使用 firewalld。同样为方便学习和后续验证,这里先开放 Nginx 端口:
# 启动 firewalld 并设为开机自启
systemctl start firewalld
systemctl enable firewalld
# 开放 HTTP(80)和 HTTPS(443)端口
# --permanent 表示永久生效,不加则重启后丢失
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
# 重载防火墙使规则生效
firewall-cmd --reload
# 查看已开放的端口(确认 80 和 443 在列表中)
firewall-cmd --zone=public --list-ports
5.4 安装必备工具包
# wget:命令行下载工具
# vim:文本编辑器(比 vi 更易用)
# net-tools:提供 ifconfig、netstat 等网络排查命令
# bash-completion:命令补全增强
yum install -y wget vim net-tools bash-completion
# EPEL(Extra Packages for Enterprise Linux,企业 Linux 扩展包仓库)
# 是 Fedora 社区维护的第三方软件仓库,提供 CentOS 官方源中没有的软件包
yum install -y epel-release
六、配置国内 YUM 源(关键步骤)
6.1 为什么必须换源?
CentOS 7 已于 2024 年 6 月 30 日正式停止维护(EOL,End of Life),官方 YUM 源的镜像地址已下线-。如果你看到以下报错,说明源已失效:
Cannot find a valid baseurl for repo: base/7/x86_64
解决方案:将 YUM 源指向阿里云的 CentOS Vault(归档源),这是目前国内最稳定、下载速度最快的替代方案-。
CentOS 8 用户(补充提示) :CentOS 8 已于 2021 年底提前终止维护,官方源同样已下线。若你使用的是 CentOS 8,阿里云也提供了对应的 Vault 归档源,可直接下载:
bash
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo后续步骤中涉及的软件源配置与 CentOS 7 原理一致,可参照执行。
6.2 备份原有源配置
# 进入 YUM 源配置目录
cd /etc/yum.repos.d/
# 创建备份目录
mkdir -p /etc/yum.repos.d/backup
# 将所有现有 .repo 文件移动到备份目录
mv *.repo backup/
# 确认备份完毕(ls 应显示为空或只有 backup 目录)
ls -l
6.3 一键换源脚本(阿里云 CentOS Vault)
# 下载阿里云 CentOS 7 归档源配置文件
# Centos-7.repo 中的 baseurl 已指向 CentOS Vault 归档地址
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 清理所有 YUM 缓存(让旧源的缓存失效)
yum clean all
# 重建缓存(从新源拉取元数据,验证新源是否可用)
yum makecache
配置解读 - CentOS Vault 是什么?
CentOS Vault(归档源)是 CentOS 官方为已停止维护的旧版本(如 CentOS 7.9)保留的软件包归档仓库。阿里云将这一归档仓库做了国内 CDN 加速,使国内用户仍能以高速下载到 CentOS 7 历史上的所有软件包。
阿里云
Centos-7.repo配置文件中[base]段的关键内容逻辑如下:[base] # 仓库 ID name=CentOS-$releasever - Base - mirrors.aliyun.com baseurl=http://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/ gpgcheck=1 # 开启 GPG 签名校验 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
$releasever和$basearch是 YUM 的内置变量,分别对应系统主版本号(7)和 CPU 架构(x86_64),这样就无需手动拼接地址了-。
6.4 验证 YUM 源是否生效
# 查看当前已加载的所有软件仓库列表
# 确认 base、updates、extras 等仓库状态正常
yum repolist
# 尝试安装一个常用工具来验证下载功能是否正常
yum install -y lrzsz
如果 centos-vault 相关仓库能正常列出且状态不为 0,说明 YUM 源已经配置成功。
七、安装与配置 Nginx
Nginx 是什么? Nginx 是一个高性能的 HTTP / 反向代理 / 邮件代理服务器,以高并发处理能力著称,是当前互联网公司最广泛使用的 Web 服务器之一。在本文中,我们将其作为整个环境的前端入口。
7.1 使用 EPEL 源安装
最便捷的安装方式是直接使用 EPEL 仓库(前面已安装 epel-release):
# 直接通过 yum 安装 Nginx
# EPEL 仓库中通常提供 1.20.x 版本,足够绝大多数场景使用
yum install -y nginx
7.2 可选:使用 Nginx 官方源安装最新版本
如果要安装最新版 Nginx,可以添加 Nginx 官方仓库(下方脚本自动适配 CentOS 7):
# 添加 Nginx 官方 YUM 仓库(建议在 /etc/yum.repos.d/ 下建立独立 repo 文件)
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
# 重新安装 Nginx(如果上面用 EPEL 装过,此操作会覆盖升级)
yum install -y nginx
7.3 启动、开机自启与状态检查
# 启动 Nginx 服务
systemctl start nginx
# 设为开机自启(确保服务器重启后 Nginx 自动运行)
systemctl enable nginx
# 查看运行状态(看到 Active: active (running) 即为正常)
systemctl status nginx
7.4 创建测试首页
# 备份自带的默认首页
cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.bak
# 创建一个带实际信息的测试首页
cat > /usr/share/nginx/html/index.html << 'EOF'
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>LNMP 环境测试</title></head>
<body>
<h1>🎉 Nginx 运行成功!</h1>
<p>服务器时间:<script>document.write(new Date().toLocaleString());</script></p>
<p>当前主机名:<strong>HOSTNAME_PLACEHOLDER</strong></p>
</body>
</html>
EOF
# 把占位符替换为真实主机名
sed -i "s/HOSTNAME_PLACEHOLDER/$(hostname)/g" /usr/share/nginx/html/index.html
此时在浏览器输入 http://服务器IP,如果看到带有“Nginx 运行成功”字样的页面,说明 Nginx 已正常运行。
7.5 安全加固:隐藏版本号
默认情况下,Nginx 的错误页面会显示具体版本号,容易被攻击者利用。建议关闭:
# 在 http 段添加 server_tokens off;
# 若找不到则手动插入到 http { } 块内部
grep -q 'server_tokens off;' /etc/nginx/nginx.conf || \
sed -i '/^http {/a \ server_tokens off;' /etc/nginx/nginx.conf
# 重载 Nginx 使配置生效(不中断服务)
nginx -t && systemctl reload nginx
nginx -t是什么? 这是 Nginx 的配置语法检查命令。执行后会扫描所有配置文件,如果语法正确,输出syntax is ok;如果有错误,会明确指出错误所在行。修改配置后务必先nginx -t再reload。
八、安装与配置 MySQL 8.0
为什么要使用 MySQL 8.0? MySQL 8.0 相比 5.7 在性能、安全性和 SQL 标准支持上有显著提升:支持窗口函数、CTE(公共表表达式)、原子 DDL、事务数据字典等。当前各大云厂商的默认数据库版本已全面切换到 8.0。
8.1 卸载系统自带的 MariaDB
CentOS 7 默认安装了 MariaDB(MySQL 的一个开源分支),需要先卸载,否则会与 MySQL 冲突:
# 查找已安装的 MariaDB 相关包
rpm -qa | grep mariadb
# 强制卸载所有 MariaDB 包(--nodeps 跳过依赖检查)
rpm -e --nodeps $(rpm -qa | grep mariadb) 2>/dev/null
# 确认已卸载干净(应无任何输出)
rpm -qa | grep -i mysql
8.2 添加 MySQL YUM 仓库(清华大学镜像)
MySQL 官方源下载速度很慢,这里使用 清华大学 TUNA 镜像站 提供的 MySQL 仓库包-:
# 下载清华镜像站的 MySQL 8.0 仓库包
# 这个 RPM 包会为系统添加 MySQL 官方的 YUM 仓库配置
wget http://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql80-community-release-el7-1.noarch.rpm
# 安装仓库包(-ivh:i=安装,v=显示详细信息,h=显示进度条)
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
GPG 密钥校验说明:MySQL 8.0 的 RPM 包默认使用 GPG(GNU Privacy Guard)签名校验。如果你遇到
GPG key retrieval failed报错,可通过以下方式手动导入:bash
复制 下载rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
8.3 安装 MySQL 8.0
# 安装 MySQL 社区服务器版
# --disablerepo=* --enablerepo=mysql80-community 确保仅从 MySQL 仓库安装
yum install -y mysql-community-server
安装过程中会自动下载并安装 MySQL 的所有依赖包,整个过程约 2-5 分钟(取决于网络速度)。
8.4 启动与获取临时密码
MySQL 8.0 安装后会自动生成一个临时 root 密码,存储在错误日志中-:
# 启动 MySQL 服务
systemctl start mysqld
# 设为开机自启
systemctl enable mysqld
# 查看自动生成的临时密码
# 日志中会显示类似 A temporary password is generated for root@localhost: abc#123DEF
grep 'temporary password' /var/log/mysqld.log
找不到临时密码? 如果
grep没有输出结果,说明 MySQL 可能在安装后已经自动初始化过一次。尝试以下操作:# 方案一:查看完整错误日志 cat /var/log/mysqld.log | grep -i password # 方案二:若日志已被轮转,删除数据目录后重新初始化(仅限新装环境!已有数据请勿操作) rm -rf /var/lib/mysql/* systemctl restart mysqld grep 'temporary password' /var/log/mysqld.log
8.5 安全初始化:改密码、删匿名用户、禁远程 root
# 执行 MySQL 安全配置向导(交互式)
mysql_secure_installation
按以下顺序操作(# 后为注释,不需输入):
Enter password for user root:
【粘贴临时密码并按回车】
New password:
【输入新密码——要求至少 8 位,含大小写字母、数字和特殊字符】
Re-enter new password:
【再次输入新密码确认】
Change the password for root ? (Press y|Y for Yes, any other key for No) : n
# 上面是询问“是否更改 root 密码”,因为前面已经改过了,输入 n
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
# 删除匿名用户(必须删,否则任何人都能免密登录)
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
# 禁止 root 远程登录(安全最佳实践)
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
# 删除测试数据库
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
# 重载权限表使设置立即生效
8.6 可选:配置远程访问(开发环境)
安全提示:严禁在生产环境直接开放 root 远程登录! 正确的做法是创建一个受限账号,仅授予指定数据库的访问权限,且限制来源 IP。
# 登录 MySQL
mysql -uroot -p
# 在 MySQL 命令行中执行(注意每条以 ; 结尾):
-- 创建一个新用户 admin,允许从任意主机连接
-- 'admin'@'%':admin 为用户名,% 表示允许任意来源 IP
-- IDENTIFIED BY 后面替换为你自己的强密码
CREATE USER 'admin'@'%' IDENTIFIED BY 'YourStrongPassword!';
-- 授予 admin 用户所有数据库的全部权限(开发环境)
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
-- 刷新权限使生效
FLUSH PRIVILEGES;
-- 退出 MySQL 命令行
EXIT;
九、安装与配置 Redis
Redis 是什么? Redis(Remote Dictionary Server)是一个开源的高性能内存键值数据库,常用于缓存、会话管理、消息队列等场景。Nginx + MySQL + Redis 是 Web 开发的经典组合。
9.1 添加 Remi 仓库(清华大学镜像)
什么是 Remi 仓库? Remi 是一个知名的第三方 RPM 仓库,提供比 EPEL 更新的软件包版本(如较新版的 PHP、Redis 等)。本文使用它来安装 Redis,可以获得比 EPEL 源中更新的版本。
# 从清华 TUNA 镜像站下载 Remi 仓库(比从国外 Remi 官方站快很多)[reference:12]
yum install -y https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
9.2 安装 Redis
# 从 Remi 仓库安装 Redis
# --enablerepo=remi 指定启用 Remi 仓库
yum --enablerepo=remi install -y redis
9.3 配置 Redis 远程访问与密码
编辑 Redis 主配置文件:
vi /etc/redis.conf
需要修改的核心参数及说明:
| 参数 | 默认值 | 修改为 | 说明 |
|---|---|---|---|
bind |
127.0.0.1 |
0.0.0.0 |
允许所有网络接口访问(仅开发环境) |
protected-mode |
yes |
no(配合密码)或 yes |
若设为 yes,必须设 requirepass,否则拒绝外部连接 |
requirepass |
注释状态 | 取消注释并设强密码 | 连接时必须提供此密码 |
daemonize |
no |
no |
保持 no,由 systemd 管理守护进程 |
在 vi 中操作示例:
# 1. 查找 bind 行(输入 /bind 按回车),修改为:
bind 0.0.0.0
# 2. 查找 requirepass 行(输入 /requirepass 按回车),取消注释并设密码:
requirepass YourRedisPassword!2026
# 3. 查找 protected-mode 行(输入 /protected-mode 按回车),设为:
protected-mode no
安全说明:
生产环境请务必保留
protected-mode yes+requirepass,不要将bind设为0.0.0.0,改用指定内网 IP。Redis 密码不支持包含
#等特殊字符。
9.4 启动、自启与连接验证
# 启动 Redis
systemctl start redis
# 设为开机自启
systemctl enable redis
# 查看状态
systemctl status redis
# 测试本地连接(-a 后面接你设置的密码)
redis-cli -a 'YourRedisPassword!2026' ping
# 返回 PONG 表示连接成功
十、环境验证:三件套联动测试
10.1 确认各服务状态
# Nginx 状态检查
systemctl status nginx | grep Active
# 预期:Active: active (running)
# MySQL 状态检查
systemctl status mysqld | grep Active
# 预期:Active: active (running)
# Redis 状态检查
systemctl status redis | grep Active
# 预期:Active: active (running)
10.2 开放云服务器安全组端口
仅限云服务器用户! VMware 虚拟机在同一宿主机访问时不需要此步骤。
云服务器有两层防火墙:系统防火墙(前面已通过 firewalld 配置)和云厂商安全组(在控制台配置)。只配一层无法从公网访问。
在云厂商控制台 → 安全组规则中,添加入方向规则:
| 端口 | 协议 | 用途 | 授权对象 |
|---|---|---|---|
| 80 | TCP | Nginx HTTP | 0.0.0.0/0 |
| 443 | TCP | Nginx HTTPS | 0.0.0.0/0 |
| 3306 | TCP | MySQL(远程管理用) | 建议限制为你的办公 IP |
| 6379 | TCP | Redis(远程调试用) | 建议限制为你的办公 IP |
⚠️ 安全强调:MySQL 3306 和 Redis 6379 是黑客扫描的重灾区,绝对不要对 0.0.0.0/0 开放。可以使用 cip.cc 查询自己的公网 IP,然后填入安全组的“授权对象”中(如
123.456.789.0/32)。
十一、总结
恭喜!你已经在 CentOS 7.9 上完成了 LNMP(Nginx + MySQL + PHP)基础设施的搭建(以 Nginx + MySQL 8.0 + Redis 作为核心件)。我们一起来回顾一下完成的工作:
| 步骤 | 关键操作 | 成果 |
|---|---|---|
| 换 YUM 源 | 替换为阿里云 CentOS Vault 归档源 | 解决了 CentOS 7 停止维护后 yum 不可用的问题 |
| 安装 Nginx | 通过 EPEL 或官方源安装 | 提供 HTTP 服务,端口 80 可正常访问 |
| 安装 MySQL 8.0 | 使用清华镜像源,完成安全初始化 | 数据库服务就绪,具备远程连接能力 |
| 安装 Redis | 使用清华 Remi 源,配置密码 | 高性能缓存服务就绪 |
关键踩坑备忘录
-
必须换源:CentOS 7 官方源已失效,换成阿里云 CentOS Vault 是整套流程的第一步,否则后续所有
yum install都会报错-。 -
MySQL 临时密码:通过
grep 'temporary password' /var/log/mysqld.log获取,如果日志中找不到,检查/var/log/mysqld.log是否存在或被轮转。 -
云服务器双重防火墙:系统
firewalld和云厂商安全组都必须配置,缺一不可。 -
Redis 密码:绑定了
0.0.0.0时必须设requirepass,否则极易被攻击者利用。 -
防火墙端口清单:本文开放了 80、443 端口。MySQL 3306 和 Redis 6379 仅建议对指定 IP 开放,切勿对全网开放!
你可以在现有环境基础上继续安装 PHP(通过 Remi 源安装 php74 或 php80)→ 搭建 Laravel 或 WordPress 应用,或安装 Docker 来运行容器化服务。基础已通,自由发挥!
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)