PHP有几种运行模式?

运行模式:1、CGI协议模式,服务器通过特定协议与程序通信;2、“fast-cgi”协议模式,开启后可一直处理请求;3、模块模式,接收请求调用“mod_php”模块处理;4、“php-cli”模式,输入“php xx.php”执行代码。

PHP有几种运行模式?

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

一:CGI协议模式

cgi模式通用网关接口(Common Gateway Interface),它允许web服务器通过特定的协议与应用程序通信,通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器执行程序,再把服务器执行程序返回给HTML页。CGI的跨平台性能极佳,几乎可以在任何操作系统上实现。
调用原理大概为:用户请求->Web服务器接收请求->fork子进程 调用程序/执行程序->程序返回内容/程序调用结束->web服务器接收内容->返回给用户,由于每次用户请求,都得fork创建进程调用一次程序,然后销毁进程,所以性能较低。

二:fast-cgi协议模式

fast-cgi是cgi模式的升级版,它像是一个常驻型的cgi,只要开启后,不会每次都要花费时间去fork一次,就可一直处理请求,不再需要结束进程。
调用原理大概为:web服务器fast-cgi进程管理器初始化->预先fork n个进程用户请求->web服务器接收请求->交给fast-cgi进程管理器->fast-cgi进程管理区接收,给其中一个空闲fast-cgi进程处理->处理完成,fast-cgi进程变为空闲状态,等待下次请求->web服务器接收内容->返回给用户。

三:模块模式

apache+php运行时,默认使用的是模块模式,它把php作为apache的模块随apache启动而启动,接收到用户请求时则直接通过调用mod_php模块进行处理。

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

模块模式是以mod_php5模块的形式集成,此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求,然后将处理后的结果返回给Apache。如果我们在Apache启动前在其配置文件中配置好了PHP模块(mod_php5),PHP模块通过注册apache2的ap_hook_post_config挂钩,在Apache启动的时候启动此模块以接受PHP文件的请求。

四:php-cli模式

php-cli模式属于命令行模式,对于很多刚开始学php就开始wamp,wnmp的开发者来说是最陌生的一种运行模式。该模式不需要借助其他程序,直接输入php xx.php 就能执行php代码,命令行模式和常规web模式明显不一样的是:

没有超时时间默认关闭buffer缓冲STDIN和STDOUT标准输入/输出/错误 的使用echo var_dump,phpinfo等输出直接输出到控制台可使用的类/函数 不同php.ini配置的不同

推荐:《2021年PHP面试题大汇总(收藏)》《php视频教程》

以上就是PHP有几种运行模式?的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月5日 15:55:39
下一篇 2025年2月19日 11:15:48

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

相关推荐

  • PHP如何删除Array数组指定key

    方法:首先用array_search(“key名”,array_keys(数组))语句在数组根据指定key名获取对应的键值;然后用“array_splice(数组, 键值, 1)”语句删除指定key元素。 本教程操作…

    2025年3月5日
    200
  • php如何设置phpexcel背景颜色

    设置方法:首先使用“getActiveSheet()->getStyle(“所选单元格”)”语句设置当前工作簿指定单元格样式;然后使用applyFromArray()访问样式数组;最后在样式数组中添加“&#82…

    2025年3月5日
    200
  • php如何去除相同的元素

    在php中,可以使用array_unique()函数删除重复元素,语法“array_unique($arr)”。array_unique()函数用于移除数组中重复的值,如果两个或更多个数组值相同,只保留第一个值,其他的值被移除。 本教程操作…

    2025年3月5日
    200
  • php如何将date转换string

    在php中,可以使用“SimpleDateFormat.format”将date转成String,语法“SimpleDateFormat.format(“时间|格式”)”;format的用法是将当前时间格式转换为指定…

    2025年3月5日
    200
  • php如何设置fpm开机启动

    方法:首先执行“chmod a+x /etc/init.d/php-fpm”命令,添加执行权限;然后执行“chkconfig –add php-fpm”命令加入服务;最后执行“chkconfig php-fpm on”命令设置开…

    2025年3月5日
    200
  • php如何删除mysql记录

    在php中,可以使用“DELETE FROM”语句删除数据表中的记录,语法“DELETE FROM 表名 WHERE 字段名=’字段’”;WHERE子句规定了哪些记录需要删除,如果省去WHERE子句,则所有的记录都会…

    2025年3月5日
    200
  • 如何检测php是否安装成功

    检测php是否安装成功的方法:首先在根目录下新建一个php文档;然后在文档中写入“phpinfo()”函数;最后打开浏览器,输入站点url,能正常访问,出现phpinfo页面则证明安装成功。 本教程操作环境:windows7系统、PHP7.…

    2025年3月5日
    200
  • Apache如何更改PHP版本信息

    方法:1、执行“find / -name”命令找到升级后的“php.ini”文件的路径;2、在“httpd.conf”文件添加“PHPIniDir 空格 新php.ini路径”,改变php版本;4、执行“service”命令重启服务。 本教…

    2025年3月5日 编程技术
    200
  • php如何在数组中查询某个值

    在php中,可以使用array_search()函数查询数组中的某个值,语法“array_search(“元素”,数组)”;该函数在数组中查找一个键值。如果在数组中找到指定的键值,则返回对应的键名;如果没找到,则返回…

    2025年3月5日
    200
  • php如何输出sql查询结果

    方法:1、用“mysql_connect()”和“mysql_select_db()”函数与数据库建立连接;2、使用“mysql_query()”函数执行查询语句“select * from 表名”;3、使用echo语句将查询结果输出即可。…

    2025年3月5日 编程技术
    200

发表回复

登录后才能评论