登录  /  注册

php有哪些运行环境

王林
发布: 2019-10-10 17:51:54
原创
3810人浏览过

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中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号