php运行原理 fastcgi与php_fpm

本文介绍了PHP的SAPI接口以及PHP与Web服务器的交互方式,包括mod_php模式和mod_fastcgi模式。重点讲解了FastCGI的工作原理,以及PHP-FPM如何作为PHP-CGI的管理程序提升性能。通过比较mod_php和mod_fastcgi,展现了PHP-FPM在处理动态内容请求时的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)我们知道像apache这些web服务器是不能直接解析php程序,那么我们在网页在输入的php程序是如何解析的啦?
是通过SAPI: Server abstraction API 它提供了一个接口,使得PHP可以和其他应用进行交互数据。
在这里插入图片描述
php 提供多种sapi
1.给apache、nginx 这种web服务器使用的 php_module .cgi
2.给shell 提供的cli
(cli 即php命令行模式)

(二)mod_php模式
把php模块安装到apache中,每个请求都会产生一个新的进程。
apache->httpd->php_module->sapi->php

我们在apache的配置文件httpd.conf中加上或者修改这样几句:

//加入以下2句LoadModule php5_module D:/php/php5apache2_2.dllAddType application/x-httpd-php .php//将下面的 DirectoryIndex index.html//将其修改为: DirectoryIndex index.html index.htm index.php index.phtml
上面的windows下安装php和apache环境后的手动配置,在linux下源码安装大致是这样配置的:

./configure –with-mysql=/usr/local –with-apache=/usr/local/apache –enable-track-vars
所以,这种方式,他们的共同本质都是用LoadModule来加载php5_module,就是把php作为apache的一个子模块来运行。当通过web访问php文件时,apache就会调用php5_module来解析php代码。

这就是mod_php模式

(三)mod_fastcgi 模式
cgi 是外部程序与web服务器的接口标准,是在cgi程序和web服务器之间传递信息的规程。
cgi工作原理:web服务器收到用户请求,把请求提交给cgi程序,cgi程序根据请求提交参数做出处理,把结果返回给web服务器

fastcgi:传统的cgi每次web请求都有启动和退出,而fastcgi是启动多个cgi模块,一直运行,web请求过来了,可以直接处理,处理完也不会退出。
图形表示一下 mod_php模式和mod_fastcgi 模式
mod_php模式
在这里插入图片描述
mod_fastcgi模式
在这里插入图片描述
(四)php-cgi php实现的自带fastcgi的管理器
php-fpm php-cgi的管理程序,是对于php-cgi的改进
请求静态页面
在这里插入图片描述
php_fpm模式
在这里插入图片描述
php_cgi模式
在这里插入图片描述

图片取至:
https://blog.csdn.net/belen_xue/article/details/65950658

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值