首页 > 后端开发 > 正文

php框架workerman workerman之小谈PHP中的几种运行模式

2023-09-05 03:44:00 | 我爱编程网

很多关注后端开发的朋友很希望了解php框架workerman workerman之小谈PHP中的几种运行模式,今天我爱编程网为大家整理了相关文章,一起来看看吧!

php框架workerman workerman之小谈PHP中的几种运行模式

workerman能做什么


Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。
Workerman不同于传统MVC框架,Workerman不仅可以用于Web开发,同时还有更广阔的应用领域,例如即时通讯类、物联网、游戏、服务治理、其它服务器或者中间件,这无疑大大提高了PHP开发者的视野。 (推荐学习: workerman教程)
workerman的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHP socket以及PHP多进程细节。
workerman本身是一个PHP多进程服务器框架,具有PHP进程管理以及socket通信的模块,所以不依赖php-fpm、nginx或者apache等这些容器便可以独立运行。
Workerman的一些应用方向如下:
1、即时通讯类 例如网页即时聊天、即时消息推送、微信小程序、手机app消息推送、PC软件消息推送等等 [示例 workerman-chat聊天室 、 web消息推送 、 小蝌蚪聊天室]
2、物联网类 例如Workerman与打印机通讯、与单片机通讯、智能手环、智能家居、共享单车等等。 [客户案例如 易联云、易泊时代等]
3、游戏服务器类 例如棋牌游戏、MMORPG游戏等等。[示例 browserquest-php]
4、SOA服务化 利用Workerman将现有业务不同功能单元封装起来,以服务的形式对外提供统一的接口,达到系统松耦合、易维护、高可用、易伸缩。[示例 workerman-json-rpc、 workerman-thrift]
5、其它服务器软件 例如 GatewayWorker,PHPSocket.IO,http代理,sock5代理,分布式通讯组件,分布式变量共享组件,消息队列、DNS服务器、WebServer、CDN服务器、FTP服务器等等
6、中间件 例如异步MySQL组件,异步redis组件,异步http组件,异步消息队列组件,异步dns组件,文件监控组件,还有很多第三方开发的组件框架等等

php框架workerman workerman之小谈PHP中的几种运行模式

workerman之小谈PHP中的几种运行模式


下面由workerman使用教程栏目给大家介绍PHP中的几种运行模式,希望对需要的朋友有所帮助!
我们知道 workerman 程序需要在php-cli模式下运行,也就是命令行模式,这块我们有必要了解一下。话说PHP当下一共有4种运行模式,分别是CGI、FastCGI、CLI和Web模块模式。
CGI
全称是“通用网关接口”(Common Gateway Interface), 它可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据,描述的是客户端和这个程序之间传输数据的一种标准,另外CGI独立于任何语言,所以可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。
CGI针对每个用户请求都要开单独的子进程去维护,所以数量多的时候会出现性能问题,最近几年很少用。
FastCGI
CGI的升级版本,FastCGI 像是一个常驻 (long-live) 型的 CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去解析php.ini、重新载入全部dll扩展并重初始化全部数据结构。
PHP使用PHP-FPM(FastCGI Process Manager),全称PHP FastCGI进程管理器进行管理。
FastCGI工作原理
Web Server启动时载入FastCGI进程管理器;
FastCGI进程管理器自身初始化,启动多个CGI解释器进程并等待来自Web Server的连接;
当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器的下一个连接。
在正常的CGI模式中,这就结束了,下次还要重新来过。但是在FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。
Cli
PHP-CLI是PHP Command Line Interface的简称,就是PHP在命令行运行的接口,区别于在Web服务器上运行的PHP环境(PHP-CGI等)。
我们在Linux下经常使用”php _m”查找PHP安装了那些扩展就是PHP命令行运行模式。 你可以打入 php -h 来看看具体都有什么命令。
在php-cli模式下我们可以直接启动一个php文件并执行,就像workerman中一样
php index.php start要说明的是,php-cli模式并没有php运行超时的说法。
Module加载
一般是针对apache而言的,这种方式,他们的共同本质都是用 LoadModule 来加载 phpX_module,就是把php作为apache的一个子模块来运行。当通过web访问php文件时,apache就会调用phpX_module来解析php代码,那么phpX_module是怎么来将数据传给php解析器来解析php代码的呢?答案是通过sapi。
所以,以上的apache调用php执行的过程如下:
apache -> httpd -> php5_module -> sapi -> phpapache每接收一个请求,都会产生一个进程来连接php通过sapi来完成请求,可想而知,如果一旦用户过多,并发数过多,服务器就会承受不住了。
而且,把mod_php编进apache时,出问题时很难定位是php的问题还是apache的问题。
小结
如果要搭建一个高性能的PHP WEB服务器,目前最佳的方式是Apache/Nginx + FastCGI + PHP-FPM(+PHP-CGI)方式了,不要再使用 Module加载或者 CGI 方式啦

php框架workerman workerman之小谈PHP中的几种运行模式我爱编程网

Workerman的应用方向有哪些


Workerman不同于传统MVC框架,Workerman不仅可以用于Web开发,同时还有更广阔的应用领域,例如即时通讯类、物联网、游戏、服务治理、其它服务器或者中间件,这无疑大大提高了PHP开发者的视野。

目前这些领域的PHP开发者奇缺,如果想在PHP领域有自己的技术优势,不满足于每天的增删改查工作,或者想向架构师方向或者技术大牛的方向发展,Workerman都是非常值得学习的框架。
建议开发者不仅会用,而且能基于Workerman开发出属于自己的开源项目,提升技能增加自己的影响力,比如Beanbun多进程网络爬虫框架就是一个很好的例子,刚刚上线不久就获得众多好评。
Workerman的一些应用方向如下:
1、即时通讯类 例如网页即时聊天、即时消息推送、微信小程序、手机app消息推送、PC软件消息推送等等 [示例 workerman-chat聊天室 、 web消息推送 、 小蝌蚪聊天室]
2、物联网类 例如Workerman与打印机通讯、与单片机通讯、智能手环、智能家居、共享单车等等。 [客户案例如 易联云、易泊时代等]
3、游戏服务器类 例如棋牌游戏、MMORPG游戏等等。[示例 browserquest-php]
4、SOA服务化 利用Workerman将现有业务不同功能单元封装起来,以服务的形式对外提供统一的接口,达到系统松耦合、易维护、高可用、易伸缩。[示例 workerman-json-rpc、 workerman-thrift]
5、其它服务器软件 例如 GatewayWorker,PHPSocket.IO,http代理,sock5代理,分布式通讯组件,分布式变量共享组件,消息队列、DNS服务器、WebServer、CDN服务器、FTP服务器等等
6、中间件 例如异步MySQL组件,异步redis组件,异步http组件,异步消息队列组件,异步dns组件,文件监控组件,还有很多第三方开发的组件框架等等
显然传统的mvc框架很难实现以上的功能,所以也就是workerman诞生的原因。
更多Workerman相关技术文章,请访问Workerman教程栏目进行学习!

以上就是我爱编程网为大家带来的php框架workerman workerman之小谈PHP中的几种运行模式,希望能帮助到大家,更多相关信息,敬请关注我爱编程网!
与“php框架workerman workerman之小谈PHP中的几种运行模式”相关推荐
php网关框架 workerman之小谈PHP中的几种运行模式
php网关框架 workerman之小谈PHP中的几种运行模式

workerman之小谈PHP中的几种运行模式下面由workerman使用教程栏目给大家介绍PHP中的几种运行模式,希望对需要的朋友有所帮助!我们知道workerman程序需要在php-cli模式下运行,也就是命令行模式,这块我们有必要了解一下。话说PHP当下一共有4种运行模式,分别是CGI、FastCGI、CLI和Web模块模式。CGI全称是“通用网关接口”(CommonGa

2023-08-30 22:25:43
workerman用于php框架 workerman 能在thinkphp的框架上使用吗
workerman用于php框架 workerman 能在thinkphp的框架上使用吗

workerman框架如何workerman是一个高性能的PHPsocket服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用,例如Rpc服务、聊天室服务器、手机游戏服务器等。workerman的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHPsocket以及

2023-09-10 14:37:31
php的socket框架 workerman无法socket怎么办
php的socket框架 workerman无法socket怎么办

workerman无法socket怎么办workerman无法socket怎么办?Workerman是一款纯PHP开发的开源高性能的PHPsocket服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。但是在配置workerman情况下,不免有些意想不到的错误,下面小编整理网上资料并整合自身遇到的问题,给

2023-09-09 01:07:53
php有多少种框架模式 php设计模式有哪几种
php有多少种框架模式 php设计模式有哪几种

php有哪些框架?PHP常用框架有:1.thinkphp:国人开发,文档比较全,中文文档。入门比较简单。写法快。2.laravel:国外人写的,入门门槛高。英语文档,社区比较活跃。3.symfony:国外人写的。门槛比较高,英语文档。4.yii:国内人写的,门槛较低。想学习这些框架,可以去黑马程序员看视频,有thinkphp、laravel的框架学习视频。ph

2023-09-28 05:56:34
php框架和设计模式 php设计模式有哪几种
php框架和设计模式 php设计模式有哪几种

php设计模式有哪几种php设计模式有以下几种模式:1、命令链模式,命令链模式以松散耦合主题为基础,发送消息、命令和请求,或通过一组处理程序发送任意内容。每个处理程序都会自行判断自己能否处理请求。2、策略模式,在此模式中,算法是从复杂类提取的,因而可以方便地替换。例如,如果要更改搜索引擎中排列页的方法,则策略模式是一个不错的选择。3、工厂模式,是一种类,它具有为您创建对象的某些方

2023-09-17 02:55:05
php框架中设计模式 php设计模式之单例、多例设计模式的应用分析
php框架中设计模式 php设计模式之单例、多例设计模式的应用分析

php设计模式之单例、多例设计模式的应用分析本篇文章是对php设计模式中的单例与多例设计模式的应用进行了详细的分析介绍需要的朋友参考下单例(Singleton)模式和不常见的多例(Multiton)模式控制着应用程序中类的数量如模式名称单例只能实例化一次只有一个对象多例模式可以多次实例化基于Singleton的特性我们经常用Singleton配置应用程序并定义应用程序中可能随时访问的变量

2023-09-19 14:31:14
php框架命令行模式 如何在cmd命令行下运行php
php框架命令行模式 如何在cmd命令行下运行php

cmd怎么运行php文件cmd怎么运行php文件?在CMD窗口中以命令行方式运行PHP,首先确认PHP已经在环境变量中推荐:《PHP教程》php[-f]"文件名"以上命令,可以在CMD窗口中运行PHP文件代码实例,编写一个简单的PHP文件CD命令切换工作目录到PHP文件保存的路径php-f"文件名"运行实例php"文件名"运行实例workerman之小

2023-09-26 07:55:04
php之父谈框架 php语言之父是谁?
php之父谈框架 php语言之父是谁?

如何写一个PHP框架呢?思路是什么,需要注意些什么?第一步实现自动加载第二步实现依赖注入容器第三步实现路由第四步实现控制器第五步实现模型第六步实现最基本的一些辅助操作类1.Db类,数据库操作少不了2.数据操作类,接收过滤getpostputdelete等数据3.配置文件操作类,任何一个框架都少不了,是吧。4.模板引擎,如果是前后端分离的

2023-08-29 05:54:25