首页 > 编程语言 >一个有趣的想法,没有fastcgi的php-fpm之前,php的框架是什么的?

一个有趣的想法,没有fastcgi的php-fpm之前,php的框架是什么的?

时间:2024-05-14 11:54:48浏览次数:28  
标签:cgi www cli fpm php fastcgi

2024年5月14日10:14:47

cgi规范
https://www.rfc-editor.org/rfc/rfc3875

w3c
https://www.w3.org/CGI/

fastcgi细节说明
https://www.mit.edu/~yandros/doc/specs/fcgi-spec.html

SAPI的全称是Server Application Programming Interface
就是服务器应用程序接口

PHP的SAPI模块 方式目前有以下几种:

CGI(通用网关接口/ Common Gateway Interface)
FastCGI(常驻型CGI / Long-Live CGI)
CLI(命令行运行 / Command Line Interface)
Web模块模式(Apache等Web服务器运行的模式)
ISAPI(Internet Server Application Program Interface)
LSAPI

注意这里的是都属于访问协议,比如apache 通过cgi协议把一些参数带给php,php也得支持这个cgi协议,才能跑起来

php-fpm也是一样,不过 fpm使用的是使用fastcgi的master-worker模式。

image

cli和其它 SAPI 模块的区别
https://www.php.net/manual/zh/features.commandline.php

cli也是一种工作模式,从版本 4.3.0 开始,PHP 支持新类型(服务器应用程序编程接口) 表示命令行 接口。顾名思义,这种类型 主要重点是开发 shell(或桌面)应用程序 PHP的

最早的时候,我想在php-fpm之前应该是cli,又想到cgi才是web接口的最早通用协议,包括jsp,python,c++等都是使用cgi。

那么也就是说在fpm之前跑在fpm上框架和现在的没什么区别,区别在于以前是apache httpd通过cgi模块给php运营,现在是nginx通过fastcgi吧请求扔给fpm。

现在有了支持cli的比如workerman,swoole了。

标签:cgi,www,cli,fpm,php,fastcgi
From: https://www.cnblogs.com/zx-admin/p/18190913

相关文章

  • php + redis 实现秒杀
    一、概述秒杀这个问题在很多面试的时候都会提到,会有各个方面的调优,配置等等,本文在这里举个简单的例子来演示下秒杀的过程,供大家参考发散思维。 二、准备介绍thinkPHP6框架redis6.0php7.4redis操作包predisapache-jmeter-5.6 三、代码实现秒杀controller层的简易代......
  • PHP代码学习
    在php传参过程中,如果服务器运行的Linux环境,可以加入命令的执行,比如参数名是a,命令可以是:a=ls,通过用;,&&,||来分割,还可以同时执行多个命令。在Windows环境下dir等价于ls.cat是读文件命令,如果被过滤可以用tac来读。通配符:*和?如我们需要找寻flag,就可以用catf*来读取所有f开......
  • PHP使用file_get_contents发送get和post请求
    1、GET请求点击查看代码functiongetData($url,$data=null){if($data){$url.='?'.http_build_query($data);}returnfile_get_contents($url);}2、POST请求点击查看代码functionpostData($url,$data=[],$json=false){if($json){......
  • PHP函数date()获取当前时间
    代码:显示的格式:年-月-日小时:分钟:秒相关参数:a:"am"或者"pm"A:"AM"或者"PM"d:几日,二位数字,若不足二位则前面补零,如:"01"至"31"D:星期几,三个英文字母,如:"Fri"F:月份,英文全名,如:"January"h:12小时制的小时,如:"01"至"12&......
  • php centos选择sqlserver的驱动和扩展选择版本的说明
    2023年2月23日13:41:48首先是phpphp扩展驱动数据库的关系官方文档说明:https://learn.microsoft.com/zh-cn/sql/connect/php/step-1-configure-development-environment-for-php-development?view=sql-server-2017https://learn.microsoft.com/zh-cn/sql/connect/php/syste......
  • laravel,webman,hyperf,thinkphp推荐哪一个?
    2024年5月11日14:11:45laravelwebmanhyperfthinkphp流行程度国内流行,欧洲特别是法国,美国,日本很多使用主要在国内流行,少量国外使用主要国内流行,少量国外使用国内流行,国外俄罗斯有使用性能fpm多进程模式,性能一般,偏差同步阻塞多进程模式,性能很好web第一梯队协......
  • CTFHUB-PHP-bypass_disable_functions
    很多可以蚁剑插件自己做,因为本来就是蚁剑实验室的靶场,这里有些也就用手工方法,方便掌握原理。LD_PRELOAD看题目一眼环境变量劫持。蚁剑可以连,但是终端命令全被ban了。访问/?ant=phpinfo();查看禁用函数:pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,......
  • PHP反序列化(Pikachu)
    原理php程序为了保存和转储对象,提供了序列化的方法。php序列化是为了在程序运行的过程中对对象进行转储而产生的。序列化可以将对象转换成字符串,但仅保留对象里的成员变量,不保留函数方法。php序列化的函数为serialize,可以将对象中的成员变量转换成字符串。反序列化的函数为unse......
  • PHP-FPM(FastCGI Process Manager)处理请求的流程
    PHP-FPM(FastCGIProcessManager)处理请求的流程大致遵循以下步骤,其中您提到的几个关键函数和阶段是PHP-FPM生命周期中的重要组成部分。下面是对您提到步骤的解释及它们如何在PHP-FPM中执行的概述:1.**php_module_startup**:-这个阶段发生在PHP-FPM服务启动时,而非每次请求处理......
  • php使用mysql-text字段存取json字符串
    PHP保存时过滤掉双引号&单引号&tabfunctionformartJsonString($jsonString=''){ $jsonString=str_replace("'","",$jsonString); $jsonString=str_replace('\"',"",$jsonString); $jsonString=st......