Compréhension des paramètres PHP-FPM
process_control_timeout
Explication anglaise
process_control_timeout mixedTime limit for child processes to wait for a reaction on signals from master. Available units: s(econds), m(inutes), h(ours), or d(ays) Default Unit: seconds. Default value: 0.
Explication chinoise
process_control_timeout mixed 设置子进程接受主进程复用信号的超时时间。可用单位:s(秒),m(分),h(小时)或者 d(天)。默认单位:s(秒)。默认值:0(关闭)。
La traduction chinoise est inappropriée L'explication anglaise n'indique pas que le signal est un signal multiplexé.
Ma compréhension :
Traitement des demandes
En principe, php-fpm
choisira un processus inactif fastcgi
pour traiter la demande avant le traitement, php-fpm enverra. un signal à fastcgi pour préparer le processus fastcgi à accepter le traitement de la demande. Cependant, le processus fastcgi n'est pas toujours capable de gérer la demande, c'est-à-dire qu'il ne peut pas toujours répondre au signal (comme une animation suspendue). À ce stade, vous devez définir l'heure à laquelle php-fpm part pour le processus fastcgi. répondre au signal. S'il expire, php -fpm pensera à d'autres moyens (comme en sélectionnant d'autres processus fastcgi
), c'est le rôle du paramètre process_control_timeout
.
php-fpm
effectuer reload
process_control_timeout
= 10
<?php sleep(50);echo 1;sleep(20); //没有这个sleep,reload会立即生效echo 2;
Lorsque le navigateur accède à http://localhost
, effectuez php-fpm
smoothreload
, fastcgi Après En recevant le signal pour fermer le processus, la première fonction de veille reviendra directement, mais la deuxième fonction de veille est toujours en cours d'exécution. Par conséquent, php-fpm sera bloqué par cet ancien processus fastcgi pendant 10 secondes, après quoi il pourra effectuer un redémarrage en douceur
request_terminate_timeout
La description dans le fichier php-fpm.conf
est la suivante suit :
; The timeout for serving a single request after which the worker process will ; be killed. This option should be used when the 'max_execution_time' ini option ; does not stop script execution for some reason. A value of '0' means 'off'. ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) ; Default Value: 0 ;request_terminate_timeout = 0
La traduction est :
Le paramètre request_terminate_timeout
définit le délai d'attente pour le traitement d'une seule requête. Après cela, le processus de travail sera tué. Cette option doit être utilisée si l'option max_execution_time
dans le fichier php.ini n'arrête pas l'exécution du script pour une raison quelconque. La valeur par défaut est 0, ce qui signifie que cette option est désactivée.
Comme mentionné ci-dessus, request_terminate_timeout
définit le délai d'expiration de la requête, et max_execution_time
dans la configuration php.ini est le temps d'exécution maximum autorisé pour le script selon l'explication suivante dans le manuel. La différence entre
max_execution_time integer 这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。 这有助于防止写得不好的脚本占尽服务器资源。 默认设置为 30。 从命令行运行 PHP 时,默认设置为 0。 最大执行时间不会影响系统调用和系统操作等。更多细节参见 set_time_limit()。 在 安全模式 下你不能通过 ini_set() 来修改此设置。 唯一的解决方法是关闭安全模式或者在 php.ini中修改时间限制。 你的 web 服务器也可以有其他超时设置,也有可能中断 PHP 的执行。 Apache 有一个 Timeout 指令,IIS 有一个 CGI 超时功能。 他们默认都是 300 秒。更多具体信息参见你的 web 服务器的文档。
est la suivante :
Après l'expiration du délai, request_terminate_timeout
renverra 502Bad Gateway, tandis que max_execution_time
lancera Fatal Error
.
max_execution_time n'inclut pas l'heure des appels système tels que l'utilisation de system()
, sleep()
, les opérations de flux, les opérations de base de données, etc., il est donc relativement inutile, tandis que request_terminate_timeout inclura l'heure complète de la requête de le programme.
De plus, l'activation de request_terminate_timeout n'invalidera pas max_execution_time. Celui qui atteint le premier le délai d'attente prendra effet.
Pour plus de problèmes PHP liés, veuillez visiter le site Web PHP chinois : https://www.php.cn/
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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.

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.

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.

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
