在云服务器上搭建 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)环境,如果限定在基于 RHEL(Red Hat Enterprise Linux)内核或兼容体系的免费发行版中,目前最稳妥、生态最成熟且长期维护的选择只有一个:
AlmaLinux 9 或 Rocky Linux 9
这两个系统是目前 CentOS Stream 停更后,社区公认的“直接替代品”。下面从技术角度详细分析为什么选它们,以及为什么不选其他看似相似的选项。
✅ 首选推荐:AlmaLinux 9 / Rocky Linux 9
1. 背景说明
- CentOS 8 已于 2021 年底停止维护,CentOS 7 虽仍可用但已进入生命周期尾声(EOL 预计 2024 年中)。
- CentOS Stream 是滚动更新版本,不适合生产环境稳定性要求高的场景。
- AlmaLinux 和 Rocky Linux 是由原 CentOS 核心团队成员发起的项目,目标是提供与 RHEL 二进制兼容的免费发行版。
2. 为什么它们最稳妥?
| 维度 | AlmaLinux 9 / Rocky Linux 9 |
|---|---|
| RHEL 兼容性 | 完全二进制兼容 RHEL 9,软件包来源一致,依赖关系稳定 |
| 社区支持 | 拥有活跃的 GitHub、论坛和企业级赞助(CloudLinux Inc. 支持 Alma) |
| 长期支持周期 | 每个大版本支持约 10 年(至 2032+),适合长期运行服务 |
| 云厂商适配 | 阿里云、腾讯云、华为云等均提供官方镜像,开箱即用 |
| LNMP 软件源 | 通过 EPEL、Remi、MariaDB Official Repo 等可轻松安装最新版 Nginx、PHP、MySQL/MariaDB |
📌 建议版本:选择 AlmaLinux 9 或 Rocky Linux 9(非 Stream)。两者几乎无差异,个人偏好可选 Alma(因有 CloudLinux 背书),企业级场景两者皆可。
❌ 不推荐的其他“类 RHEL”系统
1. CentOS Stream 9
- 属于“上游开发”分支,滚动更新,bug 修复和新功能引入更快,但稳定性不如传统 RHEL 克隆版。
- 不适合对停机时间敏感的生产环境。
2. Oracle Linux 9
- 虽然也兼容 RHEL,但其默认使用 Unbreakable Enterprise Kernel(UEK),与标准 EL kernel 不同。
- 某些第三方软件(如部分商业数据库、专有驱动)可能未针对 UEK 测试。
- 更适合 Oracle 生态用户,通用性略逊于 Alma/Rocky。
3. CentOS 7(已终止支持)
- 尽管仍有大量存量服务器在使用,但不再接收安全补丁,存在重大安全隐患。
- 新部署项目严禁使用。
4. Fedora Server
- 滚动更新,生命周期短(约 13 个月),不适合长期运行的服务器。
🔧 LNMP 环境搭建建议(以 AlmaLinux 9 为例)
1. 系统初始化
# 更新系统
sudo dnf update -y
# 安装基础工具
sudo dnf install -y vim wget curl git net-tools firewalld
# 配置防火墙(开放 80, 443, 22)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
2. 安装 Nginx
# 启用 EPEL 和 Remi 仓库(用于最新 PHP)
sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
# 启用 Nginx 模块流(可选,或直接装 nginx 包)
sudo dnf module enable nginx -y
sudo dnf install -y nginx
# 启动并设置开机自启
sudo systemctl enable --now nginx
3. 安装 MariaDB(MySQL 替代方案,开源友好)
sudo dnf install -y mariadb-server mariadb
# 启动并初始化安全设置
sudo systemctl enable --now mariadb
sudo mysql_secure_installation
4. 安装 PHP 8.2+(通过 Remi 仓库)
# 启用 PHP 8.2 模块流
sudo dnf module list php
sudo dnf module enable php:remi-8.2 -y
# 安装常用 PHP 扩展
sudo dnf install -y php php-fpm php-mysqlnd php-pdo php-gd php-mbstring php-xml php-json php-opcache
# 配置 PHP-FPM 与 Nginx 集成
sudo systemctl enable --now php-fpm
5. 配置 Nginx 与 PHP-FPM 协同工作
编辑 /etc/nginx/conf.d/default.conf 或创建站点配置文件:
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
重启 Nginx:
sudo nginx -t && sudo systemctl reload nginx
6. 验证 LNMP 环境
创建测试文件 /var/www/html/info.php:
<?php phpinfo(); ?>
访问 http://your_server_ip/info.php,确认 PHP 信息正常显示。
🛡️ 安全与维护建议
-
定期更新系统:
sudo dnf update -y sudo reboot # 如有内核更新 -
禁用 root 远程登录,使用密钥认证 SSH。
-
配置 Fail2Ban 防止暴力破解:
sudo dnf install -y fail2ban sudo systemctl enable --now fail2ban -
使用 SELinux 保持启用状态,配合正确上下文标签,而非直接禁用。
-
备份策略:定期备份数据库和网站文件,建议使用
mysqldump+tar脚本自动化。
总结
对于国内云服务器用户,在基于 RHEL 的免费系统中,首选 AlmaLinux 9 或 Rocky Linux 9。
它们稳定、兼容性好、社区活跃、云厂商支持完善,是当前 LNMP 生产环境的最佳选择。
避免使用已停更的 CentOS 7 或不稳定的 CentOS Stream。如需图形界面管理面板(如宝塔、aaPanel),这些系统也完全兼容,但需注意面板本身的安全性和更新频率。
CLOUD云枢