1、nginx swoole

swoole是一个异步、并行、高性能的网络通信引擎,使用纯C语言编写,提供了php语言的异步多线程服务器。swoole内置了http/websocket服务器端和客户端,http2.0服务器端,支持类似Go语言的协程,可以使用同步代码实现一步程序。

swoole采用I/O多路复用异步阻塞的Reactor模型,采用多线程Reactor 多线程Worker实现异步I/O。Reactor基于Epoll,每个Reactor可以处理无数个连接请求,因而可以轻松处理高并发。

Nginx swoole模式下,nginx作为前端接入层转发机,swoole作为应用服务器构建高并发web服务。

2、nginx php-fpm

FastCGI是一个中立的技术标准,php-fpm是php语言的FastCGI进程管理器。

CGI的fork-and-execute模式有很多缺点,每接收一个请求就要fork一个进程处理,只能接收一个请求做出一个响应;每一个web请求PHP都必须重新解析php.ini文件,重新载入全部扩展并初始化全部数据结构。

FastCGI会事先启动起来,解析php.ini文件,载入扩展,初始化数据结构都只会在启动时完成,作为一个CGI管理服务器存在,使用进程/线程池预先启动一系列的子进程来等待处理。然后web服务器发过来请求,一旦FastCGI接收到请求就交给子进程处理,不需要在接收到请求后启动CGI,会快很多。Web服务器通过一个socket长连接请求FastCGI进程管理器。

FastCGI进程像是一个常驻CGI,在请求到达时,FastCGI进程管理器选择并连接一个PHP-CGI解释器去接收web服务器发送过来的环境变量和标准输入,请求处理完成后将标准输出或错误从同一连接返回给web服务器,该PHP-CGI解释器子进程等待处理来自FastCGI进程管理器的下一个连接。

3、apache mod_php

mod_php模式运行php,意味着php是作为apache的一个模块来启动。只有在apache启动的时候会读取php.ini配置文件并加载扩展模块,在apache运行期间是不会再去读取和加载扩展模块的。Apache出于稳定性和安全性考虑,通常使用默认的prefork模式运行php程序。在prefork模式下,一个单独的控制进程负责产生子进程,这些子进程用于监听请求并作出应答。

Apache总是试图保持一些备用或空闲的子进程用于迎接即将到来的请求,这样客户端无需在得到服务前等候子进程的产生。但是,一旦连接数多了,apache必须要生成更多的进程来响应请求,CPU对于进程的切换就很频繁,很耗事件和资源,导致apache性能下降;同时,apache在同步阻塞I/O模型下,select遍历多个连接句柄才能知道句柄是否有事件通知,因此效率非常低。

推荐教程:PHP视频教程

php有哪几种运行环境,php有哪些运行环境相关推荐

  1. python 需要在什么环境下运行_进入Python 环境进行编程并运行程序的三种方式

    越来越多人开始学习Python了,本篇介绍进入Python 环境进行编程并运行程序的三种方式,适合刚入门的小白参考.进入Python的前提是先下载安装Python软件,如下所示,建议下载最新版,安装过 ...

  2. 国家高性能计算环境的虚拟数据空间运行支撑技术研究

    点击上方蓝字关注我们 国家高性能计算环境的虚拟数据空间运行支撑技术研究 何小雨1,2, 邓笋根1, 栾海晶1,2, 牛北方1,2 1 中国科学院计算机网络信息中心,北京 100190 2 中国科学院大 ...

  3. SpringBoot整合DWR-3.0.2-RELEASE版本,以及解决项目在开发环境及其外置Tomcat运行正常,独立JAR形式内置Tomcat运行异常的问题

    SpringBoot整合DWR 3.0.2-RELEASE填坑日记 填坑背景 问题溯源 填坑步骤 一.示例代码结构 二.示例代码说明 1.框架配置代码编写 2.后端服务代码编写 3.后端服务注册配置 ...

  4. golang语言的入门基础,及window和linux系统上环境的搭配及运行

    golang语言的入门基础,及window和linux系统上环境的搭配及运行 简介: Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性.Go语言专门针对多处理器 ...

  5. 作为一种精密仪器,分光光度计对安裝环境有特殊要求

    分光光度计已经成为现代分子生物实验室常规仪器.常用于核酸.蛋白定量以及细菌生长浓度的定量.作为一种精密仪器,在运行工作过程中由于工作环境.操作方法等种种原因,其技术状况必然会发生某些变化,可能影响设备 ...

  6. 嵌入式linux软件专利,一种嵌入式Linux操作系统网络加速运行的系统及方专利_专利查询 - 天眼查...

    1.一种嵌入式Linux操作系统网络加速运行的系统,其特征在于,主要包括以下单元:应用程序单元.Lwip函数库单元.系统接口单元.Linux系统单元.底层硬件接口单元.硬件平台单元.物理硬件网络设备单 ...

  7. Dart Server开发环境搭建及新建运行项目

    Dart Server开发环境搭建及新建运行项目 开发环境的搭建 1. 下载Dart SDK 2. 下载开发工具 3. 创建Dart Server项目 Dart除了可以使用Flutter进行移动应用开 ...

  8. python开发环境和运行环境的区别_Django 开发环境与生产环境的区分详解

    Django 开发环境与生产环境的设置 在常规的Django工程开发中,我们经常会遇到一类问题,即:本地开发环境跟远程服务器生产环境配置不一样.对于这些不同之处,以前的做法是直接修改生产环境中的配置. ...

  9. 【Android 插件化】VirtualAppEx 编译运行 ( VirtualAppEx 简介 | 配置 VirtualAppEx 编译环境 | 编译运行 VirtualAppEx 代码 )

    文章目录 一.VirtualAppEx 简介 二.配置 VirtualAppEx 编译环境 1.Android Studio 3.0 2.NDK 版本 ( Android NDK r10e ) 3.配 ...

  10. 开发环境和运行环境的区别_生产环境 VS 开发环境,关于Kubernetes的四大认识误区...

    来源:http://t.cn/ExaHoL2 最近我们澄清了一些大家在进行Kubernetes实验的时候所见到的常见的误解.其中最大的一个误解就是:在生产环境中运行Kubernetes和开发测试环境并 ...

最新文章

  1. P1338 末日的传说
  2. zabbix mysql 8g优化_zabbix mysql调优
  3. 2018-2019年度 AI方向Top10 综述
  4. 深入理解final关键字
  5. MySQL的诡异同步问题-重复执行一条relay-log
  6. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波4 - 分段线性变换 - 对比度拉伸
  7. 欧几里得算法和扩展欧几里得算法的简单例子
  8. 微信小程序预览pdf功能实现
  9. Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳...
  10. Struts1.x系列教程(17):使用IncludeAction和ForwardAction类包含和转入Web资源
  11. python中的字符类型_八、 python中的数据类型——字符串
  12. 【语音去噪】基于matlab基本维纳滤波算法语音去噪【含Matlab源码 570期】
  13. Lu 微分方程参数优化(拟合)
  14. matlab 矩阵 对称,如何使用Matlab产生对称矩阵 | 学步园
  15. 数据分析之A股市场技术分析是否可行
  16. 在DW中制作网页中的表单
  17. 【单目3D检测】Monoflex论文阅读
  18. 当当网张亮:深度解读分布式作业调度框架elastic-job
  19. 软件包的依赖性关系定义
  20. C#语言实例源码系列-实现无损压缩图片

热门文章

  1. Spring-拦截器与过滤器
  2. 【ORACLE】21版本新特性之SQL宏(SQL MACROS)的分析
  3. 什么是openshift
  4. 02 【版本控制命令】
  5. h5 唤起拨打电话功能
  6. 【手机刷机】360 n4s降级039 root刷机(卡刷、线刷等)
  7. ssm框架搭建之ss框架
  8. IoC容器Autofac
  9. Visual Studio基本使用
  10. Java开发环境搭建-win10