大家好,我是“小虾米”。上篇我们带大家成功部署了 MySQL 数据库并完成了安全加固。现在“Nginx 有了,MySQL 也有了,但怎么让网页能够执行动态代码、去数据库里查数据呢?”于是,今天我们就进入“基于 Linux 系统的基础服务搭建”第三篇,整个专栏最核心的一战——打通 LNMP 架构的动态生态(PHP-FPM 与 Nginx 的完美整合)!1. 快速安装:用 apt 部署 PHP 运行环境
在 Linux 中,Web 服务器处理动态 PHP 请求通常需要借助于PHP-FPM(FastCGI Process Manager)。我们通过 apt 一键安装 PHP 及其常用扩展:sudo apt install -y php-fpm php-mysql# 参数说明:-y 表示自动确认安装;php-fpm 是核心解释器;# php-mysql 用于打通 PHP 与 MySQL 数据库的通信
小贴士:安装完成后,系统会自动启动 PHP-FPM 服务。你可以通过 systemctl status php8.5-fpm.service
2. 核心原理:Nginx 与 PHP-FPM 是怎么“牵手”的?
在传统的架构中,Nginx 擅长处理静态文件(如图片、HTML、CSS),但它本身不会解析 PHP 代码。当用户访问 .php 文件时,Nginx 充当“交通指挥员”,通过FastCGI 协议(使用 fastcgi_pass 指令)把动态请求转发给幕后的PHP-FPM进程去处理。PHP-FPM 处理完后把结果返回给 Nginx,再由 Nginx 响应给浏览器。这就是 LNMP 能够处理动态业务的核心原理!3. 配置实战:让 Nginx 支持解析 PHP 动态脚本
我们需要修改 Nginx 的站点配置文件,让它识别并转发 PHP 请求。sudo vim /etc/nginx/sites-available/default# 打开默认的 Nginx 站点配置文件进行编辑
在配置文件中,找到处理 location ~ \.php$ 的代码段(通常是被注释掉的),将其修改并优化为如下内容:# 匹配所有以 .php 结尾的请求,将它们交给 PHP-FPM 进行动态解析location ~ \.php$ { # 包含 Nginx 自带的 FastCGI 基础参数配置 include snippets/fastcgi-php.conf; # 指定 PHP-FPM 监听的 Unix Socket 路径(不同 PHP 版本数字可能不同,如 php8.5-fpm.sock) fastcgi_pass unix:/var/run/php/php8.5-fpm.sock; # 【运维小虾米核心提示】如果是老版本或者多版本环境,也可能会通过网络端口通信,例如: # fastcgi_pass 127.0.0.1:9000;}
可以通过进入目录 /var/run/php,确认sock文件保存并退出 Vim(按 Esc 键,输入 :wq 回车)。sudo nginx -t# 在重载服务前必须养成检查配置的好习惯
sudo systemctl reload nginx# 平滑重启 nginx,不中断现有连接# 接着我们再查看nginx运行状态sudo systemctl status nginx
Active: active (running) since Mon 2026-08-17 09:51:51 UTC; 16h ago
这正是平滑重启nginx的效果,如果执行的是
sudo systemctl restart nginx
那么nginx整个进程都会重启,现有连接也都会断开。
4. 见证奇迹:编写你的第一个 PHP 探针页面
现在,让我们在网站根目录下写一个测试文件,检验 LNMP 动态闭环是否已经打通:# 1. 进入默认的网页根目录cd /var/www/html/# 2. 编写一个名为 info.php 的探针脚本sudo bash -c 'cat > info.php <<EOF<?php// 打印当前服务器的完整 PHP 运行环境信息及配置详情phpinfo();?>EOF'
上述组合命令通过 bash -c 提权,用 cat 将一段标准的 PHP 测试函数 phpinfo() 写入 info.php 文件中。接着,打开本地浏览器,访问 http://你的服务器IP/info.php如上图,页面成功展示出包含 PHP 版本、编译参数、环境变量等密密麻麻的彩色表格。恭喜你!这意味着Nginx、PHP-FPM 已经完美牵手,企业级的 LNMP 动态生态被你彻底打通了!【小虾米温馨提示】在生产环境中,千万不要留有info.php这样的文件,避免造成组件版本泄露。
5. 给读者的小作业:
今天我们学习了 PHP-FPM 的安装、Nginx 动态解析配置以及 PHP 探针页面的编写,请到你的服务器上动手练习吧:(1)使用 apt 安装好 php-fpm 和 php-mysql。(2)修改 Nginx 配置,启用 location ~ \.php$ 解析。(3)在 /var/www/html/ 下创建 info.php,并在浏览器成功打开它。在评论区告诉我:你在修改 Nginx 配置文件时,对应的 PHP-FPM Socket 文件路径和你的实际版本号对上了吗?有没有遇到“File not found.”的经典报错?下篇预告:下一篇我们将进入“基于 Linux 系统的基础服务搭建”收官篇——《安全防线加固》,教你如何配置 UFW 防火墙、管理服务开机自启,为你的线上业务筑起最后一道安全屏障,敬请期待!「IT运维技能进阶」系列文章持续更新中,可以直接点击访问。
「IT运维技能进阶」系列文章正式上线