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。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Pour résoudre le problème de PHP-FPM manquant dans Ubuntu, des exemples de code spécifiques sont nécessaires dans le système Ubuntu, l'installation et la configuration de PHP-FPM sont une opération courante, mais parfois le problème de PHP-FPM manquant se produit pendant le processus d'installation. Cet article explique comment résoudre ce problème et fournit des exemples de code spécifiques pour vous aider à terminer l'installation et la configuration. 1. Vérifiez si PHP-FPM a été installé. Tout d'abord, utilisez la commande suivante pour vérifier si PHP-FPM a été installé sur le système : dpkg-l|gr.

Méthodes pour résoudre le problème de l'échec du démarrage de PHP7-FPM dans un environnement Linux Lorsque vous utilisez un serveur Linux pour créer un site Web ou une application, PHP7-FPM est un gestionnaire de processus PHPFastCGI couramment utilisé. Cependant, vous rencontrez parfois le problème que PHP7-FPM ne démarre pas, ce qui peut empêcher l'accès normal au site Web. Dans cet article, nous aborderons quelques solutions de contournement courantes et fournirons des exemples de code spécifiques. J'espère que ces informations pourront vous aider à résoudre rapidement le problème de l'échec du démarrage de PHP7-FPM. examiner

PHP7-FPM sous Linux est un gestionnaire de processus PHPFastCGI courant, généralement utilisé pour gérer l'exécution de programmes PHP. Cependant, parfois pendant le processus de configuration ou de déploiement, vous pouvez rencontrer une situation dans laquelle PHP7-FPM ne démarre pas, empêchant l'accès normal au site Web. Dans ce cas, nous devons prendre certaines mesures pour traiter et résoudre le problème. 1. Vérifiez le journal des erreurs. Vérifiez d'abord le journal des erreurs de PHP7-FPM. Habituellement, le journal des erreurs se trouve dans /var/log/php7-fpm.

Graceful restart GR est l'abréviation de Graceful Restart. Il s'agit d'un mécanisme permettant de garantir que les services de transfert ne sont pas interrompus lors du redémarrage du protocole. Le cœur du mécanisme GR réside dans le fait que lorsqu'un appareil redémarre le protocole, il peut avertir les appareils environnants afin de maintenir des relations de voisinage stables et des itinéraires vers l'appareil dans un certain laps de temps. Une fois le protocole redémarré, les périphériques l'aident à synchroniser les informations (y compris diverses informations de topologie, de routage et de session maintenues par les protocoles de routage/MPLS prenant en charge GR), rétablissant ainsi l'appareil dans l'état où il était avant le redémarrage dans les plus brefs délais. État. Il n'y aura aucun battement de route pendant tout le processus de redémarrage du protocole, et il n'y aura aucun changement dans le chemin de transmission des paquets. L'ensemble du système peut transmettre des données sans interruption. Ce processus est appelé un redémarrage en douceur.

Pour l'un de nos projets Web, en raison de l'augmentation du nombre de nouvelles villes, le nombre de visites a augmenté et la pression sur la base de données a augmenté. En tant qu'entreprise fournissant des interfaces, un grand nombre de demandes "502" ont été signalées récemment. par rétroaction en aval. 502, badgateway, est généralement une erreur en amont (voici PHP). Pour PHP, la cause courante de 502 est que l'exécution du script dépasse le délai d'attente défini, ou que le paramètre de délai d'attente est trop grand, ce qui empêche le processus PHP de fonctionner. libéré depuis longtemps, et il n'y a pas de processus de travailleurs inactifs pour récupérer les invités. Notre projet est dû au fait que le paramètre de temps d'exécution PHP est trop court. Dans ce cas, vous pouvez d'abord augmenter le temps d'exécution PHP de manière appropriée et vous assurer que 502 est effacé en premier. Après tout, l'optimisation coûtera plus cher.

Lorsque vous résolvez le problème de l'absence de PHP-FPM dans votre système Ubuntu, vous devez suivre une série d'étapes pour installer et configurer PHP-FPM. PHP-FPM (FastCGIProcessManager) est un gestionnaire de processus qui gère les requêtes de pages dynamiques et peut améliorer les performances et la stabilité des applications PHP. Ce qui suit détaille comment installer et configurer PHP-FPM sur un système Ubuntu et fournit des exemples de code spécifiques pour aider à résoudre ce problème. Étape 1 : La mise à jour du système est en cours

nginx est différent d'Apache. Dans Apache, vous pouvez spécifier directement le journal des erreurs de php, de sorte que les informations sur les erreurs lors de l'exécution de php soient directement saisies dans le journal des erreurs de php, qui peut être facilement interrogé. Dans nginx, les choses deviennent comme ceci : nginx enregistre uniquement les journaux d'accès pour les visites de pages. Il n'y aura aucune information du journal des erreurs php. nginx envoie la demande de php au processus php-fpmfastcgi pour traitement. Le php-fpm par défaut affichera uniquement le message d'erreur de php-fpm, et le journal des erreurs de php ne peut pas être vu dans le journal des erreurs de php-fpm. La raison est que le fichier de configuration php de php-fpm

Il est courant d'utiliser PHP7-FPM comme environnement d'exécution de scripts côté serveur sur les serveurs Linux, mais vous pouvez parfois rencontrer des exceptions de démarrage. Cet article présentera quelques techniques pour gérer les exceptions de démarrage de PHP7-FPM et fournira des exemples de code spécifiques pour aider les lecteurs à mieux résoudre le problème. 1. Vérifiez le fichier de configuration. Le fichier de configuration de PHP7-FPM se trouve généralement dans le répertoire /etc/php/7.x/fpm/pool.d/ pour vous assurer que les configurations du fichier de configuration sont correctes. Peut faire
