游乐游手机版
首页/编程语言/文章详情

Ubuntu系统下PHP-FPM与Nginx协同配置教程

时间:2026-08-16 16:58
Ubuntu上Nginx处理静态文件,PHP-FPM解析PHP脚本。配置:安装两者,修改www conf启用socket监听并设用户组www-data,再改Nginx站点配置转发 php至该socket,重启服务即可验证。

想要在 Ubuntu 服务器上搭建一套高性能的 PHP 运行环境?Nginx 搭配 PHP-FPM 一直是 Linux Web 环境中非常成熟且常见的经典组合。两者协同工作时,Nginx 主要负责处理静态资源请求,而 PHP-FPM 专门执行 PHP 脚本,职责清晰,性能表现也更出色。下面就一步一步讲清楚 Ubuntu 下 Nginx 与 PHP-FPM 的配置方法,帮助你快速完成部署。

Ubuntu PHP-FPM与Nginx如何协同

第一步:安装Nginx和PHP-FPM

在 Ubuntu 上安装 Nginx 和 PHP-FPM,其实只需要执行一组命令。建议先更新软件源,再直接安装相关软件包:

sudo apt-get update
sudo apt-get install nginx php-fpm

安装完成后,Nginx 和 PHP-FPM 服务通常会自动启动。不过此时它们还没有真正完成联动,还需要继续进行对接配置。

第二步:配置PHP-FPM

PHP-FPM 的默认配置文件路径通常位于/etc/php/7.x/fpm/pool.d/www.conf(注意将7.x替换为你当前安装的 PHP 版本,例如 7.4、8.1 或 8.2)。打开该文件后,先找到下面这一行:

;listen = /run/php/php7.x-fpm.sock

这一行前面带有分号,说明当前处于注释状态。你需要取消注释,也就是删除分号,并将其中的版本号改为实际使用的 PHP 版本。这样配置后,PHP-FPM 会通过 Unix socket 文件监听请求,而不是使用 TCP 端口。通常这种方式在本机通信时性能更高,同时也更安全。

接着继续向下查找类似下面的两行配置:

;listen.owner = www-data
;listen.group = www-data

同样需要取消注释,并将用户和用户组都设置为www-data。这是 Ubuntu 中 Nginx 默认常用的运行账户。完成这一步后,Nginx 才能具备访问和使用该 socket 文件的权限。修改完成后记得保存并退出配置文件。

第三步:配置Nginx

Nginx 的站点配置文件通常位于/etc/nginx/sites-a vailable/default。打开该文件后,在server块中找到location ~ \.php$这一段。默认配置下,这部分可能并未完整启用,你可以将其调整为如下内容:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.x-fpm.sock;
}

这里需要特别注意,fastcgi_pass后面的 socket 路径必须和前面 PHP-FPM 配置文件中listen指定的路径完全一致,版本号也要对应正确。这一步的核心作用,就是告诉 Nginx:当用户请求 .php 文件时,不由 Nginx 自己解析,而是转交给 PHP-FPM 处理。

第四步:重启服务,让配置生效

完成 Nginx 和 PHP-FPM 配置后,需要重启对应服务,才能让新的设置正式生效:

sudo systemctl restart nginx
sudo systemctl restart php7.x-fpm

同样,别忘了将7.x替换成你实际安装的 PHP 版本。服务重启完成后,就可以进行测试了——你可以新建一个phpinfo.php文件,放到 Nginx 网站根目录中,然后通过浏览器访问该文件。如果页面能够正常显示 PHP 信息,就说明 Ubuntu 下的 Nginx 与 PHP-FPM 已经成功协同工作。

当这套 Nginx + PHP-FPM 环境搭建完成后,后续部署和管理 PHP 网站会更加高效。静态文件由 Nginx 直接响应,动态 PHP 请求交由 FPM 进程池处理,不仅结构清晰,也更利于提升网站性能和并发处理能力。如果后续你还想进一步优化 PHP 性能,例如调整 PHP-FPM 子进程数量、优化进程池参数,也可以继续在这个www.conf文件中进行设置。不过在此之前,先把基础环境稳定配置好,才是最关键的一步。

来源:https://www.yisu.com/ask/93209975.html
上一篇Python操作RabbitMQ消息队列入门与实战指南 下一篇Ubuntu环境下Node.js容器化部署实战指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Yum怎么查找已安装软件包及安装信息
编程语言 · 2026-08-17

Yum怎么查找已安装软件包及安装信息

使用yumlistinstalled列出所有已安装软件包,配合grep可快速过滤特定软件;yuminfo查看元数据和安装状态;yumsearch通过关键词搜索包名。以上命令均需sudo权限执行。

Debian系统中Python与Java互操作方法详解
编程语言 · 2026-08-17

Debian系统中Python与Java互操作方法详解

在Debian系统中,Python与Java互操作有五种方案:Jython直接调用Java类库但仅支持Python2;GraalVM实现多语言高性能协作;JNI底层灵活但复杂度高;Web服务通过RESTfulAPI解耦;消息队列支持异步解耦。各方案适用场景不同,需根据需求选择。

@FunctionalInterface校验逻辑与函数式接口强制约束规范
编程语言 · 2026-08-17

@FunctionalInterface校验逻辑与函数式接口强制约束规范

@FunctionalInterface 这个注解在 Java 开发中很常见,很多人都用过,但真正彻底理解它作用的人,其实并不算多。归根结底,它本质上是一种编译期契约声明,同时也是编译器进行强制校验的一道安全锁。它不会在运行时改变接口行为,也不会给接口增加任何额外能力。但不要因此低估它——在提升代码

Ubuntu上如何测试JavaScript性能与运行效率
编程语言 · 2026-08-17

Ubuntu上如何测试JavaScript性能与运行效率

Ubuntu上JavaScript性能测试实用指南 一 测试类型与指标 在Ubuntu环境中进行JavaScript性能测试,首先要明确测试目标。从实际项目经验来看,JS性能测试通常可以分为三大类,不同类型关注的性能指标也不一样: 前端页面与渲染性能:核心指标包括FPS(帧率)、长任务、布局与重绘,

LNMP环境容量规划怎么做更合理
编程语言 · 2026-08-17

LNMP环境容量规划怎么做更合理

LNMP环境容量规划需评估CPU、内存、磁盘I O等现状,明确响应时间等关键指标,基于历史流量预测负载,倒推服务器资源,设计水平或垂直扩展方案,通过压测验证,并持续监控调整,定期备份恢复,记录决策并同步团队。