先了解一下什么是fastCGI

Php是一门后端脚本语言,与go语言不同,其自身不提供web功能,要实现web应用,需要借助web服务器。由此引出cgi的概念

先看看什么是cgi(Common Gateway Interface):

早期的web服务器只处理html等静态文件,但像php等动态语言出现后,webserver处理不了了,就交给php解析器处理。但php解释器如何与web服务器通信呢?Cgi协议的出现,就是为了解决不同语言解释器(如php,python)与web服务器的通信。

简单的说,cgi是用来和web服务器打交道的,web服务器收到用户请求,就会把请求提交给cgi程序,cgi程序(php-fpm,hhvm)根据请求提交的参数作相应处理(解析php),然后将输出返回给web服务器,再返回给客户端。

cgi的改进->fastcgi:

cgi有个弊端,每次web请求,都会重新fork一个cgi进程,结束再kill掉,资源消耗大,不适合高并发。

于是fastcig就应运而生了。它事先早已启动好,一直运行等待web请求过来,再交给php解析,并将结果返回web服务器,继续等待下一个请求。

什么是HHVM、php-fpm

php-fpm和hhvm都是fastCGI协议的一种实现

Php-fpm:

php-Fastcgi Process Manage,是php的fastCGI实现,并提供了进程管理的功能。进程包含 master 进程和 worker 进程两种进程。master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方。

HHVM:

是Facebook开源的PHP执行引擎,可支持cli,fastcgi server(相当于php-fpm),http server(相当于nginx+phpfpm)三种运行方式。它将php转换为c++,再编译为二进制文件运行,所以性能更好。

二者的区别:

相比php5.2,hhvm性能更高,更省cpu,据说能省40%-60%

但php7出来后,据说可以替代hhvm

HHVM与php-fpm相关推荐

  1. HHVM安装(centos6.3下)

    一.简介 HipHop VM(HHVM)是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点. Face ...

  2. HHVM 是如何提升 PHP 性能的?

    背景 HHVM 是 Facebook 开发的高性能 PHP 虚拟机,宣称比官方的快9倍,我很好奇,于是抽空简单了解了一下,并整理出这篇文章,希望能回答清楚两方面的问题: HHVM 到底靠谱么?是否可以 ...

  3. Ubuntu 打 deb 包报错(fpm not found、dos2unix not found)

    1. 安装 dos2unix 在 Ubuntu 打 deb 包时有如下错误: /bin/sh: 1: dos2unix: not found 使用 apt-get 来安装 sudo apt-get i ...

  4. php-fpm开启报错-ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock

    在升级了php7.2.0版本之后,重新启动php-fpm过程中遇到一个报错. An another FPM instance seems to already listen on /tmp/php-c ...

  5. Nginx与Lua利用fpm打成rpm包

    1.下载相关软件 需要软件有:Nginx,LuaJIT,ngx_devel_kit,ngx_lua等安装文件 安装Lua或者LuaJIT都是可以的,但是出于效率的考虑,推荐安装LuaJITshell& ...

  6. php 脚本 fpm缓存,PHP生命周期及fpm(FastCGI进程管理器)的运作方式

    PHP在web方式中如何改了文件就立即生效的,重要的几个概念:sapi: 可以简单的理解为php引擎对外的一个统一接口,使得php可以和外部程序进行交互 php的生命周期中关键四个调用: MINT - ...

  7. 使用FPM快速生成RPM包

    为什么80%的码农都做不了架构师?>>>    许多朋友始终觉得RPM难做,主要是因为SPEC规则比较多,需要花精力去了解和熟悉.之前试用一个叫checkinstall的工具,可以自 ...

  8. Nginx 进阶 (ssl、fpm、rewrite、cache配置等)

    一.配置https网站 1.自建CA (1)生成私钥文件 mkdir -p /etc/pki/CA/private #创建私钥保存的目录 (umask 077;openssl genrsa -out ...

  9. fpm定制化RPM包之nginx rpm包的制作

    fpm定制化RPM包之nginx rpm包的制作 1.安装ruby模块 # yum -y install ruby rubygems ruby-devel 2.添加阿里云的Rubygems仓库,国外资 ...

  10. 使用fpm简单制作自定义rpm包

    我的环境是centos7.2的 一.安装FPM工具 yum -y install ruby rubygems ruby-devel gem sources list   查看gem包管理源仓库地址 g ...

最新文章

  1. 《数据竞赛白皮书·下篇》发布,开源办好一场数据竞赛的实践方法论
  2. 离开互联网大厂的年轻人都去了哪儿?
  3. php数组获取差集,php数组求差集问题
  4. python画锯齿波_用Python控制硬件35-自制二三十元成本的信号测量采集控制系统
  5. multiple build commands for output file
  6. Atitit 数据库 负载均衡 方法总结 目录 1. 对称模型负载均衡 vs 非对称模型 2 1.1. 业务分离法 2 1.2. App + db分布式分离法 2 2. 负载均衡算法 2 2.1.
  7. ReadyBoost 的应用教程
  8. OI退役记,第二部分,八十中记事
  9. (2)msp430f5529 官方例程
  10. oracle loop面试题,oracle存储过程面试题
  11. 帝国时代3亚洲王朝怎么控制军营训练其它文明的兵种
  12. 2022.4.10 ShanDong Multi-University Training #1 QLU-team#8 の 赛后总结
  13. 【React Native】使用react-native-wechat 进行微信好友、微信朋友圈进行分享
  14. 蓝牙HCI command/event/acl/sco格式介绍
  15. Ubuntu 20.04安装RTL8812BU网卡驱动教程
  16. 公司发的电脑无法登录OneNote账户
  17. 通用设计法则:80/20法则
  18. 钉钉成功了,那中国企业服务的春天还有多远?
  19. 微信开放平台(消息加解密接入指引)
  20. 6G推进组:超大规模天线技术研究

热门文章

  1. 列举3个短视频类的产品,并分析其目标用户、主打需求、竞争优势等
  2. 近十年来出现的计算机术语,近十年来科技英语翻译研究评述(2003—2012).doc
  3. Android动画设置
  4. 地面站安装前固件调试_PixHawk飞控和Mission Planner地面站安装调试
  5. A - Palindrome
  6. 草图大师怎么渲染全景图?Sketchup渲染全景图的操作办法和方式!
  7. java null是什么类型_Java中的Null到底是什么
  8. HDU-2196Computer 树形DP-经典题
  9. A律折线与miu律折线
  10. 云服务器运行UI交互型挂机脚本,断开连接后失效问题