php有哪几种运行环境,php有哪些运行环境
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有哪些运行环境相关推荐
- python 需要在什么环境下运行_进入Python 环境进行编程并运行程序的三种方式
越来越多人开始学习Python了,本篇介绍进入Python 环境进行编程并运行程序的三种方式,适合刚入门的小白参考.进入Python的前提是先下载安装Python软件,如下所示,建议下载最新版,安装过 ...
- 国家高性能计算环境的虚拟数据空间运行支撑技术研究
点击上方蓝字关注我们 国家高性能计算环境的虚拟数据空间运行支撑技术研究 何小雨1,2, 邓笋根1, 栾海晶1,2, 牛北方1,2 1 中国科学院计算机网络信息中心,北京 100190 2 中国科学院大 ...
- SpringBoot整合DWR-3.0.2-RELEASE版本,以及解决项目在开发环境及其外置Tomcat运行正常,独立JAR形式内置Tomcat运行异常的问题
SpringBoot整合DWR 3.0.2-RELEASE填坑日记 填坑背景 问题溯源 填坑步骤 一.示例代码结构 二.示例代码说明 1.框架配置代码编写 2.后端服务代码编写 3.后端服务注册配置 ...
- golang语言的入门基础,及window和linux系统上环境的搭配及运行
golang语言的入门基础,及window和linux系统上环境的搭配及运行 简介: Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性.Go语言专门针对多处理器 ...
- 作为一种精密仪器,分光光度计对安裝环境有特殊要求
分光光度计已经成为现代分子生物实验室常规仪器.常用于核酸.蛋白定量以及细菌生长浓度的定量.作为一种精密仪器,在运行工作过程中由于工作环境.操作方法等种种原因,其技术状况必然会发生某些变化,可能影响设备 ...
- 嵌入式linux软件专利,一种嵌入式Linux操作系统网络加速运行的系统及方专利_专利查询 - 天眼查...
1.一种嵌入式Linux操作系统网络加速运行的系统,其特征在于,主要包括以下单元:应用程序单元.Lwip函数库单元.系统接口单元.Linux系统单元.底层硬件接口单元.硬件平台单元.物理硬件网络设备单 ...
- Dart Server开发环境搭建及新建运行项目
Dart Server开发环境搭建及新建运行项目 开发环境的搭建 1. 下载Dart SDK 2. 下载开发工具 3. 创建Dart Server项目 Dart除了可以使用Flutter进行移动应用开 ...
- python开发环境和运行环境的区别_Django 开发环境与生产环境的区分详解
Django 开发环境与生产环境的设置 在常规的Django工程开发中,我们经常会遇到一类问题,即:本地开发环境跟远程服务器生产环境配置不一样.对于这些不同之处,以前的做法是直接修改生产环境中的配置. ...
- 【Android 插件化】VirtualAppEx 编译运行 ( VirtualAppEx 简介 | 配置 VirtualAppEx 编译环境 | 编译运行 VirtualAppEx 代码 )
文章目录 一.VirtualAppEx 简介 二.配置 VirtualAppEx 编译环境 1.Android Studio 3.0 2.NDK 版本 ( Android NDK r10e ) 3.配 ...
- 开发环境和运行环境的区别_生产环境 VS 开发环境,关于Kubernetes的四大认识误区...
来源:http://t.cn/ExaHoL2 最近我们澄清了一些大家在进行Kubernetes实验的时候所见到的常见的误解.其中最大的一个误解就是:在生产环境中运行Kubernetes和开发测试环境并 ...
最新文章
- P1338 末日的传说
- zabbix mysql 8g优化_zabbix mysql调优
- 2018-2019年度 AI方向Top10 综述
- 深入理解final关键字
- MySQL的诡异同步问题-重复执行一条relay-log
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波4 - 分段线性变换 - 对比度拉伸
- 欧几里得算法和扩展欧几里得算法的简单例子
- 微信小程序预览pdf功能实现
- Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳...
- Struts1.x系列教程(17):使用IncludeAction和ForwardAction类包含和转入Web资源
- python中的字符类型_八、 python中的数据类型——字符串
- 【语音去噪】基于matlab基本维纳滤波算法语音去噪【含Matlab源码 570期】
- Lu 微分方程参数优化(拟合)
- matlab 矩阵 对称,如何使用Matlab产生对称矩阵 | 学步园
- 数据分析之A股市场技术分析是否可行
- 在DW中制作网页中的表单
- 【单目3D检测】Monoflex论文阅读
- 当当网张亮:深度解读分布式作业调度框架elastic-job
- 软件包的依赖性关系定义
- C#语言实例源码系列-实现无损压缩图片