凑巧今天和蛋侠吹牛逼,突然问了这个问题,就去找了找,结果发现这不就是我平常说的php解释器嘛
不过还是记录一下,免得忘了
去官网看了看
FPM(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。
它的功能包括:
* 支持平滑停止/启动的高级进程管理功能;
* 可以工作于不同的 uid/gid/chroot 环境下,并监听不同的端口和使用不同的 php.ini 配置文件(可取代 safe_mode 的设置);
* stdout 和 stderr 日志记录;
* 在发生意外情况的时候能够重新启动并缓存被破坏的 opcode;
* 文件上传优化支持;
* "慢日志" - 记录脚本(不仅记录文件名,还记录 PHP backtrace 信息,可以使用 ptrace或者类似工具读取和分析远程进程的运行数据)运行所导致的异常缓慢;
* [fastcgi_finish_request()](http://php.net/manual/zh/function.fastcgi-finish-request.php)
- 特殊功能:用于在请求完成和刷新数据后,继续在后台执行耗时的工作(录入视频转换、统计处理等);
* 动态/静态子进程产生;
* 基本 SAPI 运行状态信息(类似Apache的 mod_status);
* 基于 php.ini 的配置文件。
以上信息得知:
1 php-fpm是fastcgi的一个更高级的实现版本
2 fastcgi看名字就知道是某个cgi的版本
3 所以 php-fpm extends fastcgi extents cgi
4 他们统称为php解释器,由webserver提交的php信息和请求交由他们处理
5 目前php用的是php-fpm
6 php-fpm比fastcgi多了以上特性,特别是平滑重启着重看了下
7 由于cgi可能是单例模式的,所以fastcgi大概就是升级了一下这种单例模式,变成了常驻模式,不用每次都重新打开php.ini配置,或者重新启动进程,有一个常驻的master进程,用master进程管理其他进程,其他进程不够用会预先启动多个进程备用,用完之后由master释放,恩,大概是这个意思
网友评论