目录

引言

一、环境说明

1.1 软件版本一览

1.2 前置知识

二、获取 CentOS 7.9 系统镜像

2.1 国内高速镜像下载(推荐)

2.2 云服务器直接选配

三、VMware 虚拟机安装 CentOS 7.9

步骤 1:下载并安装 VMware Workstation

步骤 2:创建新虚拟机

步骤 3:安装系统

四、云服务器环境准备(公共步骤)

获取公网 IP 并登录

换源说明

五、基础环境配置(VM & 云服通用)

5.1 网络连通性检查

5.2 关闭 SELinux(临时 + 永久)

5.3 防火墙策略配置

5.4 安装必备工具包

六、配置国内 YUM 源(关键步骤)

6.1 为什么必须换源?

6.2 备份原有源配置

6.3 一键换源脚本(阿里云 CentOS Vault)

6.4 验证 YUM 源是否生效

七、安装与配置 Nginx

7.1 使用 EPEL 源安装

7.2 可选:使用 Nginx 官方源安装最新版本

7.3 启动、开机自启与状态检查

7.4 创建测试首页

7.5 安全加固:隐藏版本号

八、安装与配置 MySQL 8.0

8.1 卸载系统自带的 MariaDB

8.2 添加 MySQL YUM 仓库(清华大学镜像)

8.3 安装 MySQL 8.0

8.4 启动与获取临时密码

8.5 安全初始化:改密码、删匿名用户、禁远程 root

8.6 可选:配置远程访问(开发环境)

九、安装与配置 Redis

9.1 添加 Remi 仓库(清华大学镜像)

9.2 安装 Redis

9.3 配置 Redis 远程访问与密码

9.4 启动、自启与连接验证

十、环境验证:三件套联动测试

10.1 确认各服务状态

10.2 开放云服务器安全组端口

十一、总结

关键踩坑备忘录


引言

对于很多刚入行的后端开发者或运维新手来说,“在 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 命令(cdlsvi 等);

  • 对 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:创建新虚拟机

  1. 打开 VMware,点击 “创建新的虚拟机” → 选择 “典型(推荐)”

  2. 选择 “稍后安装操作系统”,点击“下一步”;

  3. 客户机操作系统选 “Linux” → 版本选 “CentOS 7 64 位”

  4. 虚拟机名称自定(如“CentOS7-Dev”),位置建议选一个剩余空间大于 30GB 的分区;

  5. 磁盘容量建议 ≥ 20GB,勾选 “将虚拟磁盘存储为单个文件”

  6. 点击“自定义硬件”:内存建议 ≥ 2GB(以后可以调),处理器建议 ≥ 2 核

  7. 在 “CD/DVD” 中,选择“使用 ISO 镜像文件” → 浏览载入刚才下载的 CentOS-7-x86_64-DVD-2009.iso

  8. 网络适配器建议选 “NAT 模式”(虚拟机可共享宿主机网络)。

步骤 3:安装系统

  1. 启动虚拟机,在引导界面选择 “Install CentOS 7”

  2. 语言选择 “English (United States)”(强烈不建议选中文,后续命令行环境下会出现乱码);

  3. 在 “INSTALLATION SUMMARY” 界面,按顺序设置以下 3 项:

    • DATE & TIME:点地图选 Asia / Shanghai,打开 NTP(Network Time Protocol,网络时间协议) 开关(自动同步网络时间);

    • INSTALLATION DESTINATION:点进去选中磁盘,直接点 “Done”(采用自动分区);

    • NETWORK & HOST NAME:将以太网开关拨到 “ON”,确保虚拟机可以上网。

  4. 点击 “Begin Installation” → 安装过程中设置 ROOT 密码(务必牢记);

  5. 安装完成后点击 “Reboot” 重启。

云服务器用户注意:此处是 VMware 的安装流程。如果你是云服务器用户,先阅读下面的【第四章】。

以下【第五章】及之后的步骤对 VM 和云服通用,不再区分。

四、云服务器环境准备(公共步骤)

本节适用人群:使用云服务器的同学。
VMware 虚拟机同学:无需执行本节,直接跳至【第五章】。

云服务器用户通常有两种方式登录系统:

方式 适用场景 说明
Web 控制台(VNC) 初次使用、网络不通排查 在云厂商控制台点击"远程连接"即可
SSH 客户端 日常运维 使用 Xshell / MobaXterm / 终端直接连接公网 IP

获取公网 IP 并登录

  1. 登录云厂商控制台,找到你的云服务器实例;

  2. 复制 公网 IP 地址;

  3. 在本地终端执行:

# 格式: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 源,配置密码 高性能缓存服务就绪

关键踩坑备忘录

  1. 必须换源:CentOS 7 官方源已失效,换成阿里云 CentOS Vault 是整套流程的第一步,否则后续所有 yum install 都会报错-。

  2. MySQL 临时密码:通过 grep 'temporary password' /var/log/mysqld.log 获取,如果日志中找不到,检查 /var/log/mysqld.log 是否存在或被轮转。

  3. 云服务器双重防火墙:系统 firewalld 和云厂商安全组都必须配置,缺一不可。

  4. Redis 密码:绑定了 0.0.0.0 时必须设 requirepass,否则极易被攻击者利用。

  5. 防火墙端口清单:本文开放了 80、443 端口。MySQL 3306 和 Redis 6379 仅建议对指定 IP 开放,切勿对全网开放!

你可以在现有环境基础上继续安装 PHP(通过 Remi 源安装 php74 或 php80)→ 搭建 Laravel 或 WordPress 应用,或安装 Docker 来运行容器化服务。基础已通,自由发挥!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐