在 AlmaLinux 上部署 LNMP 环境完整指南

举报
Chocola 发表于 2026/09/14 08:02:47 2026/09/14
【摘要】 LNMP 是一套经典的 Web 服务架构,由 Linux + Nginx + MySQL/MariaDB + PHP 四个组件组成。AlmaLinux 作为 CentOS 的社区继任者,以其出色的稳定性和兼容性,成为部署 LNMP 环境的理想选择。本文将手把手带你从零开始在 AlmaLinux 上搭建一套完整的 LNMP 环境。 一、环境准备在开始之前,请确保你已拥有一台安装了 AlmaLi...

LNMP 是一套经典的 Web 服务架构,由 Linux + Nginx + MySQL/MariaDB + PHP 四个组件组成。AlmaLinux 作为 CentOS 的社区继任者,以其出色的稳定性和兼容性,成为部署 LNMP 环境的理想选择。本文将手把手带你从零开始在 AlmaLinux 上搭建一套完整的 LNMP 环境。


一、环境准备

在开始之前,请确保你已拥有一台安装了 AlmaLinux 的服务器,并具备 root 或 sudo 权限。

1. 更新系统

sudo dnf update -y

2. 安装 EPEL 仓库

EPEL 仓库提供了大量额外的软件包,是后续安装的基础:

sudo dnf install epel-release -y

3. 配置防火墙

开放 HTTP(80)和 HTTPS(443)端口,确保外部可以正常访问 Web 服务:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

4. 关闭 SELinux(可选)

SELinux 可能会阻止 Nginx 与 PHP-FPM 之间的通信,开发测试环境建议关闭:

sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

💡 提示:生产环境中建议保留 SELinux 并为其配置正确的安全策略,而非直接关闭。


二、安装 Nginx

Nginx 是高性能的 Web 服务器和反向代理服务器,负责处理用户请求。

sudo dnf install nginx -y

安装完成后,启动 Nginx 并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

验证安装是否成功:

systemctl status nginx

此时在浏览器中访问 http://你的服务器IP,如果看到 Nginx 的欢迎页面,说明 Nginx 已正常运行。


三、安装 MariaDB

MariaDB 是 MySQL 的开源分支,完全兼容 MySQL,是 AlmaLinux 默认推荐的数据库。

sudo dnf install mariadb mariadb-server -y

启动并设置开机自启:

sudo systemctl start mariadb
sudo systemctl enable mariadb

运行安全初始化脚本,设置 root 密码、移除匿名用户、禁止远程 root 登录等:

sudo mysql_secure_installation

该脚本会引导你完成以下操作:

  • 设置 root 密码
  • 移除匿名用户(建议 Y)
  • 禁止 root 远程登录(建议 Y)
  • 删除 test 数据库(建议 Y)
  • 刷新权限表(建议 Y)

验证数据库是否正常运行:

mysql -u root -p

输入密码后能成功进入数据库命令行,即表示安装成功。


四、安装 PHP 及相关扩展

PHP 是服务端脚本语言,负责处理动态内容。AlmaLinux 支持通过模块流(Module Stream)选择 PHP 版本。

1. 选择 PHP 版本(可选)

如果需要特定版本(如 PHP 8.1),可以先配置模块流:

sudo dnf module reset php -y
sudo dnf module enable php:8.1 -y

2. 安装 PHP 及常用扩展

sudo dnf install php php-fpm php-opcache php-gd php-curl \
php-mysqlnd php-pdo php-xml php-json php-mbstring php-zip -y

启动 PHP-FPM 并设置开机自启:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

验证安装:

php -v

五、配置 Nginx 支持 PHP

这是整个部署过程中最关键的一步——让 Nginx 能够将 .php 请求转发给 PHP-FPM 处理。

创建或编辑 Nginx 配置文件:

sudo vim /etc/nginx/conf.d/default.conf

写入以下内容:

server {
    listen       80;
    server_name  localhost;
    root         /usr/share/nginx/html;

    location / {
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include       fastcgi_params;
        fastcgi_pass  unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

💡 注意:fastcgi_pass 的路径需要与 PHP-FPM 的监听方式一致。AlmaLinux 默认使用 Unix Socket(/run/php-fpm/www.sock),你也可以改为 TCP 方式 127.0.0.1:9000。

检查配置语法并重载 Nginx:

sudo nginx -t
sudo nginx -s reload

六、验证 LNMP 环境

创建一个 PHP 测试文件来验证整个环境是否联通:

sudo vim /usr/share/nginx/html/info.php

写入以下内容:

<?php
phpinfo();

在浏览器中访问:

http://你的服务器IP/info.php

如果能看到 PHP 的详细配置信息页面,恭喜你,LNMP 环境已经部署成功!🎉

⚠️ 安全提醒:验证完成后,请务必删除 info.php 文件,避免服务器信息泄露:

sudo rm /usr/share/nginx/html/info.php

七、常见问题排查

问题 可能原因 解决方案
502 Bad Gateway PHP-FPM 未启动或 Socket 路径错误 检查 systemctl status php-fpm,核对 fastcgi_pass 路径
PHP 文件直接下载 Nginx 未正确配置 PHP 解析 检查 location ~ \.php$ 配置块是否完整
403 Forbidden 文件权限问题 执行 sudo chown -R nginx:nginx /usr/share/nginx/html
无法访问页面 防火墙未开放端口 检查 firewall-cmd --list-services

八、总结

至此,你已经成功在 AlmaLinux 上部署了一套完整的 LNMP 环境,包括:

  • ✅ Nginx:高性能 Web 服务器
  • ✅ MariaDB:稳定可靠的数据库
  • ✅ PHP + PHP-FPM:动态内容处理引擎
  • ✅ Nginx + PHP-FPM 联动:完整的请求处理链路

这套环境可以作为 WordPress、Laravel、ThinkPHP 等主流 Web 应用的运行基础。后续你还可以进一步配置 HTTPS(Let’s Encrypt)、优化 PHP-FPM 参数、设置数据库主从复制等,逐步打造生产级别的服务架构。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。