LNMP网络服务搭建

一、核心架构概述

表格

架构 组成组件 核心特点 适用场景
LNMP Linux + Nginx + MySQL + PHP-FPM 轻量级、高并发,Nginx 直接通过 PHP-FPM 解析 PHP,资源消耗低 高并发场景、静态资源较多的 Web 应用(如论坛、博客)
LNAMP Linux + Nginx + Apache + MySQL + PHP 混合架构,Nginx 处理静态资源,Apache 解析动态 PHP,兼顾兼容性与性能 复杂业务、需兼容 Apache 生态的中大型应用(如电商)

二、LNMP 架构部署(核心步骤)

LNMP 是轻量级高并发架构的核心,部署重点是 Nginx、MySQL、PHP-FPM 的协同配置,最终实现 PHP 解析与数据库连接。

1. 组件部署与配置
(1)编译安装 Nginx
  • 前置依赖:安装gcc、pcre-devel、zlib-devel、openssl-devel等编译依赖;
  • 创建专用用户:useradd -M -s /sbin/nologin nginx,创建日志目录并授权;
  • 核心编译参数:指定安装目录(--prefix=/usr/local/nginx)、运行用户组,启用 SSL、HTTP/2、stream(四层代理)等模块;
  • 系统服务配置:编写nginx.service文件,设置开机自启,通过systemctl管理启动 / 重载。
(2)安装 MySQL
  • 采用dnf快速安装:dnf install mysql mysql-server -y,启动服务并设置开机自启;
  • 初始化配置:默认密码为空,登录后重置 root 密码(如Aptech1!),刷新权限。
(3)编译安装 PHP-FPM
  • PHP-FPM 是 Nginx 解析 PHP 的核心组件,负责管理 PHP 进程池,提升并发处理能力;
  • 依赖安装:安装libxml2-devel、curl-devel、libzip-devel等依赖库;
  • 编译参数:指定安装目录,启用 MySQL 连接(--with-mysqli=mysqlnd)、GD 库、FPM 模块(--enable-fpm);
  • 配置优化:
    • 复制并修改php.ini,设置时区(Asia/Shanghai)、内存限制(如256M);
    • 调整php-fpm.d/www.conf,创建专用运行用户php,优化进程池参数(动态模式:pm=dynamic,设置最小 / 最大空闲进程数、最大进程数)。
2. 组件协同配置与测试
(1)Nginx 支持 PHP 解析

nginx.confserver块中添加 PHP 匹配规则,通过fastcgi_pass转发至 PHP-FPM 的 9000 端口:

nginx

复制代码
location ~ \.php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
}

同时在location /中添加index.php作为默认首页。

(2)测试验证
  • PHP 环境测试:在网站根目录创建index.php,写入phpinfo(),浏览器访问验证 PHP 解析正常;
  • 数据库连接测试:修改index.php,通过mysqli_connect连接 MySQL,验证数据库连接成功。
3. 实战:部署 Discuz 论坛

Discuz 是 PHP+MySQL 架构的开源论坛,用于验证 LNMP 架构的实际应用:

  • 解压源码:将 Discuz 的upload目录文件复制到网站根目录(如/usr/local/nginx/html/bbs),授权给php用户;
  • 数据库准备:创建专用数据库(discuz_db)、授权用户(discuz_user),分配全权限;
  • 网页安装:访问http://IP/bbs/install,按向导完成环境检测、数据库配置、管理员信息设置,最终完成部署。

三、LNAMP 架构:动静分离实现

LNAMP 的核心是动静分离,由 Nginx 处理静态资源(图片、CSS、JS),Apache 处理动态 PHP 请求,降低单一服务器负载,提升响应速度。

1. 部署架构(两台主机)
  • 主机 1(Nginx 服务器):负责接收客户端请求,直接返回静态资源,转发动态请求至 Apache 服务器;
  • 主机 2(Apache+MySQL 服务器):搭建 LAMP 环境,解析 PHP 动态请求,连接 MySQL 提供数据支持。
2. 核心配置
(1)Nginx 反向代理与静态资源配置

nginx.conf中添加规则,匹配静态资源后缀(jpg、png、css、js)直接处理,PHP 请求转发至 Apache:

nginx

复制代码
# 静态资源处理:缓存7天
location ~* \.(jpg|jpeg|png|gif|css|js)$ {
    root /usr/share/nginx/html;
    expires 7d;
}
# 动态请求转发至Apache服务器(192.168.10.102)
location ~ \.php$ {
    proxy_pass http://192.168.10.102:80;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}
(2)LAMP 环境搭建(主机 2)
  • 快速安装:dnf install httpd php php-mysqlnd mysql mysql-server -y,启动 Apache、MySQL 服务;
  • 数据库配置:创建测试数据库(testdb)、用户(testuser),创建users表并插入测试数据;
  • 编写动态页面:创建test.php,实现数据库查询(动态内容)和静态图片嵌入(img标签指向 Nginx 静态目录)。
3. 验证效果

浏览器访问http://Nginx服务器IP/test.php,可同时看到:

  • 动态内容:从 MySQL 查询的用户列表(由 Apache 解析返回);
  • 静态内容:Nginx 直接返回的图片资源;
  • 日志验证:查看 Apache 日志,仅记录动态请求,确认动静分离生效。

四、本章核心总结

  1. LNMP 架构的核心是Nginx+PHP-FPM 协同,PHP-FPM 通过进程池管理提升 PHP 解析性能,适用于高并发、轻量级场景;
  2. LNAMP 架构的核心是动静分离,利用 Nginx 的高并发静态资源处理能力和 Apache 的 PHP 兼容性,兼顾性能与稳定性,适用于复杂业务;
  3. 部署关键:组件权限配置(专用运行用户)、参数优化(PHP-FPM 进程数、Nginx 缓存)、数据库安全(专用授权用户,避免 root 直接连接);
  4. 实战价值:通过 Discuz 部署掌握 PHP 应用上线流程,通过动静分离理解架构优化思路,可根据业务场景灵活选择两种架构。
相关推荐
handler0116 分钟前
Git 核心指令速查
linux·c语言·c++·笔记·git·学习
Gary Studio23 分钟前
ubuntu 16.04一键换源
linux·运维·ubuntu
hopetomorrow24 分钟前
学习路之PHP --PHP 常用扩展及作用表
开发语言·学习·php
又来敲代码了34 分钟前
k8s的部署
linux·运维·云原生·容器·kubernetes
IT WorryFree1 小时前
FGT-KVM 完整部署极简教程(CentOS 7 + KVM 环境)
linux·运维·centos
一袋米扛几楼981 小时前
【报错问题】彻底解决 TypeScript 报错 TS2769: No overload matches this call (JWT 篇)
linux·javascript·typescript
goyeer1 小时前
【ITIL4】32服务实践 - 服务变更管理
linux·运维·服务器·数字化·价值·itil
扛枪的书生1 小时前
Git 学习总结
linux
liuyao_xianhui1 小时前
进程概念与进程状态_Linux
linux·运维·服务器·数据结构·c++·哈希算法·宽度优先
幽络源小助理1 小时前
影视脚本分镜在线协作系统源码 PHP剧本创作平台
开发语言·php