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

立即学习“PHP免费学习笔记(深入)”;

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有哪些运行环境的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2522873.html

(0)
上一篇 2025年3月5日 17:33:23
下一篇 2025年2月28日 12:21:50

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php二次开发做些啥

    什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一般来说都不会改变原有系统的内核。 (推荐学习:PHP视频教程) 为什么要二次开发? 随着信息化技术的不断发展,IT行业涌现出了一…

    2025年3月5日
    200
  • php动态网站开发是什么

    《php动态网站开发》是2015年清华大学出版社出版的图书,作者是唐四薪。本书系统地介绍了php的核心原理与应用技术,在叙述有关原理时安排了大量的相关实例。 动态网站的开发与实施涉及范围极其广泛、研究时间长、过程发展复杂,本身就是一个需要经…

    2025年3月5日
    200
  • PHP与C语言的语法有什么不同

    php与c语言的语法有什么不同? PHP的基本语法和C是很相似的,可以说大部分编程语言的基本语法都是如出一辙的:顺序、选择(if)、循环(while)。不同之处有变量定义,还有实现的具体细节。 但是,php主要是部署网站用的,所以大部分时候…

    2025年3月5日
    200
  • php动态二维码如何生成

    我们可以使用phpqrcode这个现成的类文件,php二维码生成类库,利用它可以轻松生成二维码,二维码是动态的,不用生成图片,可自定义二维码大小,间隙,跳转地址等。 phpqrcode生成动态二维码简单实例 参数设置: (推荐学习:PHP视…

    2025年3月5日
    200
  • php与html区别

    php与html区别 HTML是超文本标记语言;PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。 HTML主要用在客户端的显示,比如我们浏览的网页,特别是静态…

    2025年3月5日
    200
  • php的集成开发环境哪个好

    主流的php集成开发环境 (integrated development environment 以下均简称为 ide) 大概有十几种,比如:zend studio,phpstorm,eclipse,netbeans,dreamweaver…

    2025年3月5日
    200
  • php用什么软件写的

    php用什么软件写的? php用phpstorm软件写。PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。 PhpSto…

    2025年3月5日
    200
  • php用什么下载文件

    php用什么下载文件? head() 和 fread()函数把文件直接输出到浏览器,此方法能够较好的把文件的真实地址隐藏起来。 <?php $file_name = "down";$file_name = &quo…

    2025年3月5日
    200
  • php的session如何使用

    在php中使用session,首先要启动session会话,启动session会话要使用php内置函数session_start(),如图所示。 (推荐学习:PHP视频教程)  然后session_start()函数必须位于标签之前才可使用…

    2025年3月5日 编程技术
    200
  • php和css有什么关联

    php和css有什么关联? CSS 是用来做网页的表现层的,对网页中元素,比如字体、图片等位置的排版进行像素级精确控制 php 是用来处理逻辑层的,也就是你要网页提供什么功能,完成什么动作。如查询数据,计算利息,生成图表等。php代码是嵌入…

    2025年3月5日
    200

发表回复

登录后才能评论