search
Homephp教程php手册php 中 FastCGI与cgi的关系,何为fastcgi,cgifastcgi

php 中 FastCGI与cgi的关系,何为fastcgi,cgifastcgi

FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持 在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因, 如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、 Fail-Over 特性等。
FastCGI的工作原理是:
(1) FastCGI进程管理器自身初始化,启动多个CGI解释器进程(多个php-cgi进程)并等 待来自Web Server的连接。在本文中,采用PHP-FPM进程管理器启动多个php-cgi FastCGI进 程。启动php-cgi FastCGI进程时,可以配置以TCP和UNIX套接字两种方式启动。
(2) 当客户端请求到达Web服务器(Nginx)时,Web服务器将请求采用TCP协议或UNIX 套接字方式转发到FastCGI主进程,FastCGI主进程选择并连接到一个CGI解释器(子进程)。 Web服务器将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
(3)
FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web服务器(Nginx).
当FastCGI子进程关闭连接时,请求便告知处理完成。FastCGI子进程接着等待并处理来自FastCGI 进程管理器的下一个连接。而在一般的普通CGI模式中,php-cgi在此便退出了。
所以,你可以想象普通的CGI模式有多慢。每一个Web请求PHP都必须重新解析php.ini、 重新载入全部扩展并重新初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生 一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。
PHP FastCGI 的优点:
(1) PHP脚本运行速度更快。PHP解释程序被载入内存而不用每次需要时从存储器读取, 此举极大提升了依靠脚本运行站点的性能。
(2) 须要使用的系统资源更少。由于服务器不用在每次需要时都载入PHP解释程序,你可 以将站点的传输速度提升很多而不必增加CPU负担。
(3) 不需要对现有的代码作任何改变。运行在Apache+PHP上的程序,无须修改即可适用 于 PHP 的 FastCGI。

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
解决Ubuntu缺少PHP-FPM的问题解决Ubuntu缺少PHP-FPM的问题Mar 08, 2024 pm 09:45 PM

解决Ubuntu缺少PHP-FPM的问题,需要具体代码示例在Ubuntu系统中,安装和配置PHP-FPM是常见的操作,但有时候在安装过程中会出现缺少PHP-FPM的问题。本文将详细介绍如何解决这个问题,并提供具体的代码示例帮助您完成安装和配置。1.检查PHP-FPM是否已安装首先,使用以下命令检查系统中是否已经安装了PHP-FPM:dpkg-l|gr

解决Linux环境下PHP7-FPM启动失败的方法解决Linux环境下PHP7-FPM启动失败的方法Mar 11, 2024 pm 02:12 PM

解决Linux环境下PHP7-FPM启动失败的方法在使用Linux服务器搭建网站或应用程序时,PHP7-FPM是一个常用的PHPFastCGI进程管理器。但是有时会遇到PHP7-FPM启动失败的问题,这可能会导致网站无法正常访问。在本文中,我们将介绍一些常见的解决方法,并提供具体的代码示例。希望这些信息能够帮助你快速解决PHP7-FPM启动失败的情况。检查

如何应对Linux下PHP7-FPM启动失败的情况如何应对Linux下PHP7-FPM启动失败的情况Mar 10, 2024 pm 09:54 PM

Linux下的PHP7-FPM是一种常见的PHPFastCGI进程管理器,通常用来处理PHP程序的运行。然而有时候在配置或者部署过程中,可能会遇到PHP7-FPM启动失败的情况,导致网站无法正常访问。在这种情况下,我们需要采取一些措施来应对和解决问题。1.检查错误日志首先要查看PHP7-FPM的错误日志,通常错误日志位于/var/log/php7-fpm

nginx平滑重启和FPM平滑重启是什么nginx平滑重启和FPM平滑重启是什么May 23, 2023 pm 09:08 PM

平滑重启GR是GracefulRestart(平滑重启)的简称,是一种在协议重启时保证转发业务不中断的机制。GR机制的核心在于:当某设备进行协议重启时,能够通知其周边设备在一定时间内将到该设备的邻居关系和路由保持稳定。在协议重启完毕后,周边设备协助其进行信息(包括支持GR的路由/MPLS相关协议所维护的各种拓扑、路由和会话信息)同步,在尽量短的时间内使该设备恢复到重启前的状态。在整个协议重启过程中不会产生路由振荡,报文转发路径也没有任何改变,整个系统可以不间断地转发数据。这个过程即称为平滑重启。

nginx+php-fpm服务HTTP状态码502怎么解决nginx+php-fpm服务HTTP状态码502怎么解决May 21, 2023 am 08:07 AM

我们的一个web项目,由于新上城市增多,导致访问量增大,db压力增大,作为提供接口的业务方,最近被下游反馈大量请求“502”。502,badgateway,一般都是upstream(这里就是php)出错,对于php,造成502的原因常见的就是脚本执行超过timeout设置时间,或者timeout设置过大,导致php进程长时间不能被释放,没有空闲worker进程来接客。我们的项目就是php执行时间设置过短导致的,对于这种情况,可以先适当增大php的执行时间,先保证清除502,优化的事情毕竟要花更多

解决Ubuntu系统中缺少PHP-FPM的挑战解决Ubuntu系统中缺少PHP-FPM的挑战Mar 08, 2024 pm 02:48 PM

在解决Ubuntu系统中缺少PHP-FPM的挑战时,需要遵循一系列步骤来安装和配置PHP-FPM。PHP-FPM(FastCGIProcessManager)是一个处理动态页面请求的进程管理器,能够提高PHP应用程序的性能和稳定性。以下将详细介绍如何在Ubuntu系统上安装和配置PHP-FPM,并提供具体的代码示例来帮助解决这一挑战。第一步:更新系统在进

Nginx中使用PHP-FPM时记录PHP错误日志怎么配置Nginx中使用PHP-FPM时记录PHP错误日志怎么配置May 15, 2023 am 08:58 AM

nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询。在nginx中事情就变成了这样:nginx只对页面的访问做access记录日志。不会有php的errorlog信息。nginx把对php的请求发给php-fpmfastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errorslog里也看不到php的errorlog。原因是php-fpm的配置文件php

Linux服务器上PHP7-FPM启动异常的处理技巧Linux服务器上PHP7-FPM启动异常的处理技巧Mar 11, 2024 am 11:09 AM

在Linux服务器上使用PHP7-FPM作为服务器端脚本运行环境是常见的做法,但有时候可能会遇到启动异常的情况。本文将介绍一些处理PHP7-FPM启动异常的技巧,同时提供一些具体的代码示例,帮助读者更好地解决问题。1.检查配置文件PHP7-FPM的配置文件通常位于/etc/php/7.x/fpm/pool.d/目录下,确保配置文件中各项配置正确无误。可以使

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!