如何在 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的运行时配置文档中找到更多信息。我们将在下一部分向你展示如何添加其他指令。

相关推荐
Xin_ye100861 分钟前
C# 零基础到精通教程 - 第十二章:异常处理与调试——让程序更健壮
开发语言·c#
楼田莉子3 分钟前
C#学习之C#入门学习
开发语言·后端·学习·c#
我命由我123454 分钟前
PHP - PHP 简易 Web 服务器、基础接口开发
服务器·开发语言·前端·php·intellij-idea·idea·intellij idea
Reload.5 分钟前
CZ航司,shopping JS逆向 acw_sc__v2
开发语言·javascript·python·网络爬虫·ecmascript
码界筑梦坊5 分钟前
130-基于Python的体育用品销售数据可视化分析系统
开发语言·python·信息可视化·flask·毕业设计
码界筑梦坊7 分钟前
131-基于Flask的美国新泽西州自动售货机销售数据可视化分析系统
开发语言·python·信息可视化·数据分析·flask·毕业设计
努力努力再努力wz8 分钟前
【QT入门系列】QWidget 六大常用属性详解:windowOpacity、cursor、font、focus、toolTip 与 styleSheet
android·开发语言·数据结构·c++·qt·mysql·算法
神仙别闹11 分钟前
基于MFC(C++)实现(界面)学委作业管理系统
开发语言·c++·mfc
三品吉他手会点灯11 分钟前
C语言学习笔记 - 41.数据类型 - scanf函数核心知识点复习
c语言·开发语言·笔记·学习
撩得Android一次心动12 分钟前
C语言基础笔记3【个人用】
android·c语言·开发语言·笔记