今天是
当前位置:微山新闻资讯 > 系列报道 >

运城计算机培训关于PHP编程语言的运行模式类型

时间:2019-07-30 18:30 来源: 作者:微山新闻资讯

随着互联网的不断发展,越来越多的编程开发语言被程序员掌握,而今天我们就一起来了解一下关于PHP编程开发的运行模式都有哪些类型。

一、CLI模式

运城计算机培训关于PHP编程语言的运行模式类型

Command Line Interface的简称,支持windows和Linux平台

直接在命令行运行,不需要http server,例如php test.php

应用场景

定时任务

开发桌面应用使用PHP-CLI和GTK包

二、CGI模式

Common Gateway Interface的简称,连接网页和web服务器执行程序,把http服务器接受指令传给执行程序,把执行程序的结果返回给http服务器,支持跨平台

执行过程

http服务器接收到用户请求,如index.php,会通过它配置的cgi服务执行

生成一个php-cgi进程,并执行php程序

执行结果返回给http服务器

应用场景

提供http服务

优缺点

跨平台,几乎能在任何操作系统实现

web和server是独立的,结构清晰,可控性强

性能比较差,每一个请求fork一个进程,消耗资源比较多(fork-and-execute模式)

逐渐少见

三、FastCGI模式

快速通用网关接口(Fast Common Gateway Interface)是CGI的增强版本,是一种让交互程序和web服务器通信的协议,致力于减少web服务器和CGI程序之间互动开销,使服务器可以同时处理更多的网页请求

执行过程

web服务器启动时载入Fast CGI进程管理器(php-fpm)

FastCGI进程管理器会启动多个CGI进程等待web服务器的连接

当客户端请求到达web服务器时,FastCGI进程管理器选择并连接到一个CGI解释器。web服务器把环境变量和标准输入发送到FastCGI子进程php-cgi

FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回web服务器。当FastCGI子进程关闭连接时,请求报告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器的下一个连接。在CGI模式中,php-cgi在此便退出了

应用场景

提供http服务

优缺点

跨平台,几乎能在任何操作系统实现

web和server是独立的,结构清晰,可控性强

支持大并发

多进程,消耗较多内存

四、模块模式

模块模式指把PHP作为web服务器的一个模块运行

IIS的ISAPI和Apache的apache2handler

apache2handler

apache监听一个用户请求index.php

apache根据conf文件配置的LoadModule php_module modules/mod_php5.so(windows下面是php5apache2_2.dll)调用PHP

在mod_php5.so注册一个php的钩子php_ap2_register_hook

php_ap2_register_hook钩子函数中包括4个挂钩以及对应的函数ap_hook_pre_config,ap_hook_post_config,ap_hook_handler,ap_hook_child_init。其中pre_config,post_config,child_init是启动挂钩,在服务器启动时调用。handler时请求挂钩,在服务器处理请求时调用。其中post_config挂钩中启动php。

php执行完成后数据通过.so或dll返回给apache

apache将数据返回到客户端

应用场景

提供http服务

优缺点

安装配置方便,不需要安装代码解析程序

支持多线程,占用资源少

支持大并发

【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!

通知公告
百姓心声
友情链接: