PHP 是怎么接收到请求的?-php教程

资源魔 31 0
php 是怎样接纳到申请的?


本篇文章次要形容一下几点

● nginx 怎样转发申请 给 PHPFPM?

● CGI 以及 FastCGI 究竟是个甚么玩意?

● PHPFPM 是甚么?有甚么作用?

简略场景形容

正在阅读器上拜访一个 php+nginx+mysql 构建的商城,而且采办一件商品。

剖析 (这里拜访的有两种资本)

● 动态资本(网站的一些图片,图标等)

● 静态资本 (采办商品的价钱,商品的简介等)

阅读器发动申请 --> web_server(nginx)散发解决 --> php 执行代码前往后果 (这是大略的流程)

nginx 是怎样散发申请?

当用户发动申请的时分 (阅读器默许申请 80 端口),nginx 监听到 80 端口,经过 nginx 设置装备摆设正则婚配能否属于动态资本,假如是动态资本则前往文件,申请完结。假如是静态资本,经过 正则婚配到申请 php 剧本,那末他会经过 nginx 的模块 ngx_http_fastcgi_module 把申请散发给 PHPFPM 解决,而后解决终了前往后果。

● CGI

CGI 是 Web 效劳器运转内部顺序的标准。意义就是经过 CGI 能够与你的顺序通讯,经过 CGI 规范格局。你的顺序能够以及阅读器交互。

(简略了解 CGI 就是一个协定,规则了一些货色该怎样传,你的顺序这边怎样承受解决等标准。)

● PHP-CGI

PHP-CGI 就是 CGI 协定 php 的一个完成版。PHP-CGI 会为每一个申请 fork 一个过程解决,解决实现撤退退却出。(这个模式叫做 fork-and-execute)。这样的模式没有合乎如今动没有动年夜规模的流量,以是已加入汗青舞台。

● FastCGI

FastCGI 是 CGI 的晋级版,他会事后启动一个 master 过程读取设置装备摆设文件,而后 fork 多个 work 过程期待衔接。监听到申请,调配个 work 过程做详细的解决。这样年夜年夜进步了顺序的功能。(FastCGi 会治理过程,解决实现后没有会随意马虎销毁。而 CGI 会为每个申请 创立过程,销毁过程。)

● PHPFPM

作为世界上最佳的言语,当然要跟上潮水。当发现 PHP-CGI 功能欠安时,又恰恰呈现了 FastCGI 协定。以是 PHP 完成了一个 php 版本的 FastCGI,名字叫做 PHPFPM(FastCGI Process Manager)。 PHPFPM 启动时会开启 一个 master 过程以及若干个 work 过程。master 过程监听申请,并转发给 work 过程解决,每个 work 过程都有一个 php 诠释器,你的代码正在每个 work 过程中都有一份,work 过程是真正执行代码之处。

SO

PHPFPM 监听 9000 端口,nginx 婚配到 php 文件,把申请转发给 PHPFPM。PHPFPM master 监听到申请后,调配给 work 解决(每个 work 过程中都有一个 php 诠释器),PHPFPM 正在启动的时分就曾经 work 过程曾经加载了设置装备摆设,加载了你写代码。以是说 work 过程收到申请后立马执行,而后前往后果。

ngx_http_fastcgi_module 模块

正在阅读器申请 web_server 是 http 协定 或许 https 协定,然而 PHPFPM 没有懂怎样办了?这里 nginx 提供了一个 ngx_http_fastcgi_module ,ngx_http_fastcgi_module 把 http 或许 https 申请 映照成 FastCGI 申请。这样 php 顺序就能以及用户互动了。

纯集体了解,假如有误请指出。

相干保举:【PHP教程】

以上就是PHP 是怎样接纳到申请的?的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学

抱歉,评论功能暂时关闭!