简介
PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。
现在我们可以在最新的PHP 5.3.2的源码树里下载得到直接整合了PHP-FPM的分支,据说下个版本会融合进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼。
PHP5.3.3已经集成 php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP 进程管理方式,可以有效控制 内存和 进程、可以平滑 重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 ?enable-fpm参数即可开启PHP-FPM。
使用PHP-FPM来控制PHP-CGI的FastCGI进程
/usr/local/ php/sbin/ php-fpm{start|stop|quit|restart|reload| logrotate}
--start 启动 php的 fastcgi进程
--stop 强制终止 php的 fastcgi进程
--quit 平滑终止 php的 fastcgi进程
--restart 重启 php的 fastcgi进程
--reload 重新平滑加载 php的 php.ini
--logrotate 重新启用log文件
特色功能所有这些特性都是“不打断”的方式实现的。也就是说,如果你不使用它们,它们的存在不会影响 php的功能性??他们都是“透明”的。
Error header
范围: php.ini 选项
分类:便利性
默认情况下,如果被访问的 php脚本包含语法错误,用户会收到一个空的“200 ok”页。这是不方便的。Error header 这个 php.ini 选项允许在这种情况下产生一个 HTTP 错误码,比如“HTTP/1.0 550 Server Made Big Boo”,从而中断web server请求并显示一个正确的错误页。
如果要实现这样的功能,需要在 php.ini 中添加一条 fastcgi.error_header = "HTTP/1.0 550 Server Made Big Boo"
在 php-5.2.4 中添加了类似,但不相同的功能:如果被访问的php脚本包含语法错误,并且 display_errors = off,会立刻返回“HTTP/1.0 500 Internal Server Error”。
如果你需要设定一个 503 错误,或者想要使这个行为独立于 display_errors 的设置,那么可以使用 fastcgi.error_header。如果你在 php-5.2.5 或以上版本上启用 php-fpm,那么 fastcgi.error_header的优先级更高。
优化的上传支持
实质:web server 支持
类型:优化
这个特性正如名字那样,可以加速对大 POST 请求的处理速度,包括文件上传。优化是通过将请求体已写入一个临时文件,然后 fastcgi协议传递文件名而不是请求体到来实现的。目前就我所知,只有 nginx0.5.9 以上才支持这个功能。显然,这种模式只在 php和 web server 在一台机器上的时候才能用。
nginx 样例配置:
location ~ \. php$ {
fastcgi_pass_request_body off;
client_body_in_file_only clean;
fastcgi_param REQUEST_BODY_FILE $request_body_file;
...
fastcgi_pass ...;
}
在 php中不需要配置任何东西。如果 php收到了参数REQUEST_BODY_FILE,就读取其中的请求体,如果没有,就自行从 fastcgi协议中读取请求体。
结合这个特性,可以考虑对 临时文件使用内存文件系统,例如tmpfs(linux):
client_body_temp_path /dev/shm/client_body_temp;
fastcgi_finish_request()
范围: php函数
类型:优化
这个特性可以提高一些 php请求的处理速度。如果有些处理可以在页面生成完后进行,就可以使用这种优化。比如,在 memcached 中保存 session 就可以在页面交给 web server 后进行。 fastcgi_finisth_request() ,这一特性可以结束响应输出,web server 可以立即开始交给等不及的客户端,而此刻, php可以在请求的上下文环境中处理许多事情。比如保存session,转换上传的视频,处理统计等等。
fastcgi_finisth_request() 会触发 shutdown 函数运行。
request_slowlog_timeout
范围: php-fpm.conf 选项
分类: 方便
这个选项能让你跟踪执行缓慢的脚本并把他们连同调用栈一起记录再日志文件中。例如如下设置:
正如你再例子中看到的,脚本运行了 5 秒以上,并很可能是由于 mysql 响应慢造成的(top backtrace)。

虽然Windows11仍然是上一次迭代的重大升级,但有些问题似乎没有得到Microsoft的完善。一个常见的问题是Windows11中的重复驱动器号,即同一驱动器列出两次,您需要删除多余的条目。例如,它将列在“这台电脑”下,然后在导航窗格中再次作为可移动驱动器列出。虽然这不会转化为存储空间消耗的增加,但这肯定会使Windows资源管理器混乱。为什么我的驱动器在Windows11中显示两次?默认情况下,Windows在导航窗格中显示外部驱动器两次。这就是它的发展方式。但是,冲突的驱动器号或损坏的系

如何使用php-fpm进行高性能调优PHP是一种非常流行的服务器端脚本语言,广泛用于开发网页应用和动态网站。然而,随着访问量的增加,PHP应用程序的性能可能会受到影响。为了解决这个问题,我们可以使用php-fpm(FastCGIProcessManager)来进行高性能调优。本文将介绍如何使用php-fpm来提升PHP应用程序的性能,并提供代码示例。一、

一些PC用户和游戏玩家在使用Windows11或Windows10时,可能会遇到CPU使用率异常高的问题,尤其在运行某些应用程序或游戏时。这篇文章提供了一些建议,帮助用户缓解这个问题。一些受影响的PC用户指出,在遇到这个问题时,他们观察到任务管理器显示其他应用程序仅使用0%至5%的CPU,而服务主机:能力访问管理器服务的使用率却高达80%至100%。什么是服务主机:功能访问管理器服务?功能访问管理器服务的作用是确认应用程序是否有权限访问摄像头和麦克风,并授权必要权限。它方便管理UWP应用程序对功

NPU是神经处理单元的缩写,是一种专门用于执行机器学习算法等计算的处理器。简单来说,它是专门设计用于加速与人工智能相关任务的处理器。本文将介绍如何检查Windows11PC是否配备有神经处理单元(NPU)。了解您的电脑是否有Windows11中的神经处理单元(NPU)以下方法将帮助您确定您的PC是否在Windows11中安装了神经处理单元(NPU)。通过任务管理器通过设备管理器通过访问官方网站下面,我们已经详细解释了所有这些方法。1]使用任务管理器检查您的PC是否有NPUWindows11PC上

win10系统是一款可以进行各种设置和调节的系统,今天小编为大家带来的就是realtek高清晰音频管理器怎么设置麦克风的解决办法!感兴趣的话就快来看看吧。realtek高清晰音频管理器怎么设置麦克风:1、在桌面左下角的显示隐藏图标中找到“realtek高清晰音频管理器”图标。2、点击进入界面中,首先看到的是“扬声器页面”,这个界面可以通过喇叭组态调整喇叭的声音。3、接着是音效,你可以选择自己想要的音效的环境以及“均衡器,流行、摇滚、俱乐部”等等。4、接着是室内矫正音质,室内空间矫正只能够矫正在“
![如何在 Windows 11 上隐藏和取消隐藏文件夹 [3 种方式]](https://img.php.cn/upload/article/000/887/227/169542942766265.jpg)
隐藏文件夹是保持桌面井井有条的好方法。也许您想让您的个人文件或一些客户详细信息远离窥探。不管是什么,在必要时将它们收起来并取消隐藏的能力是一个很大的节省。简而言之,这些隐藏文件不会显示在主菜单中,但它们仍然可以访问。这非常简单,不应该花费您太多时间。如何在Windows11中隐藏文件夹?1.使用文件资源管理器打+键打开文件资源管理器。WindowsE找到要隐藏的文件夹,右键单击它,然后选择属性。导航到常规选项卡,选中隐藏框,单击应用,然后单击确定。在下一个对话框中,选中将更改应用于此文件夹,子文

如何在Windows11和Windows10中暂停任务管理器进程更新按CTRL+窗口键+删除打开任务管理器。默认情况下,任务管理器将打开“进程”窗口。正如您在此处看到的,所有应用程序都在无休止地移动,当您想要选择它们时,可能很难将它们指向下方。因此,按CTRL并按住它,这将暂停任务管理器。您仍然可以选择应用程序,甚至可以向下滚动,但您必须始终按住CTRL按钮。

利用php-fpm连接池提升数据库访问性能概述:在Web开发中,数据库的访问是非常频繁且耗时的操作之一。传统的方法是每次数据库操作都新建一个数据库连接,使用完毕后再关闭连接。这种方式会造成数据库连接的频繁建立和关闭,增加了系统的开销。为了解决这个问题,可以利用php-fpm连接池技术来提升数据库访问性能。连接池的原理:连接池是一种缓存技术,将一定数量的数据库


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

Notepad++7.3.1
Easy-to-use and free code editor

Atom editor mac version download
The most popular open source editor

WebStorm Mac version
Useful JavaScript development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment
