如何在 cPanel 中使用 PHP-FPM

PHP性能一直是影响网站托管的一个重要问题。PHP是当前网络上使用最广泛的服务器编程语言,远远领先于其他语言。最受欢迎的内容管理系统和电子商务应用程序,如WordPress、Joomla、Drupal、Magento等,都是用PHP编写的。

PHP-FPM加速了在繁忙服务器上的PHP执行,使其成为提高网站速度和优化服务器资源的有效工具。

本文详细介绍了PHP-FPM的工作原理,并解释了如何在cPanel & WHM中安装和配置它。

什么是PHP-FPM?

PHP-FPM是一种加速繁忙网络应用程序的PHP运行环境,同时帮助系统管理员控制服务器资源的使用。

传统的PHP运行环境,比如Apache的mod_PHP,是在Web服务器内部工作的。每个连接都会消耗一部分服务器资源。如果有太多并发连接,服务器可能会耗尽内存等资源,影响所有网站的性能。

而PHP-FPM则不同:它运行于Web服务器外部,并使用工作进程池来执行代码。工作进程在请求到来时已经准备好并等待,你可以控制池中的工作进程数量,确保它们不会耗尽所有服务器资源。

具体工作原理是:

Apache通过一个叫FastCGI的高速接口将代码发送给PHP-FPM。

一个监督进程从池中选取一个工作进程并将代码交给它。

工作进程执行代码,然后将结果返回给Apache,Apache再将结果发送到Web浏览器。

工作进程完成后返回池中等待下一个代码块。

如果有太多并发连接,一些连接可能需要等待空闲的工作进程,但它们不会耗尽整个服务器的资源。在繁忙的Web服务器上,工作进程池比其他方法更快更有效。

在CentOS和EasyApache中开始使用PHP-FPM

在cPanel & WHM中启用和配置PHP-FPM非常简单。你可以选择哪些域名使用它,并设置影响其行为的配置参数。

首先是在WHM的MultiPHP Manager中的系统PHP-FPM设置中将其打开。

点击"开启"后,WHM会使PHP-FPM可用,但不会自动为所有域名激活它。你可以通过点击"将所有账户转换为PHP-FPM"强制服务器上的所有账户使用PHP-FPM。

或者,你可以在本页面底部的表格中为单个域激活PHP-FPM。要一次为多个域名激活PHP-FPM,请在表格中选择它们,然后在下拉菜单中选择"开启"。

在cPanel中配置PHP-FPM

激活PHP-FPM后,你可以在MultiPHP Manager中配置系统默认设置和各个域的设置。

点击"系统PHP-FPM配置(System PHP-FPM Configuration)"标签。

在此部分中,你可以更改三个池设置。这些是应用于域名池的默认值:

最大请求数(Max Requests):每个工作进程在重新启动前应执行的请求数量。此设置有助于解决内存泄漏问题。默认值为20,适用于大多数主机场景,但在流量较大的服务器上,你可能希望将其增加到40到60之间。

进程空闲超时(Process Idle Timeout):空闲工作进程在关闭前等待的时间。空闲进程会消耗资源,因此我们不希望它们过多,但也不希望它们过早关闭,因为启动新进程需要时间。默认值为10秒,可能对于繁忙的服务器来说太低。

最大子进程数(Max Children):每个池中的最大工作进程数量。默认值为5。

在池选项下方是PHP INI指令。我们在界面中展示了几种最有用的指令,你可以在PHP的运行时配置文档中找到更多信息。我们将在下一部分向你展示如何添加其他指令。

相关推荐
超级架构师43 分钟前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
叼烟扛炮1 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
Escalating_xu2 小时前
【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚
linux·网络·php
LMT流氓兔2 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
专注仿真2 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
外收内放2 小时前
Python基础语法练习题(75)
开发语言·python·学习
starzy19903 小时前
Scala循环与判断:一切皆表达式的控制流
开发语言·人工智能·scala
starzy19903 小时前
Scala类和对象:从构造器到样例类的完整指南
开发语言·后端·scala
niucloud-admin4 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:订单列表
开发语言·php
一枕槐安4874 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算