Maison > développement back-end > PHP7 > le corps du texte

Quel est le cycle de vie de PHP7

醉折花枝作酒筹
Libérer: 2023-02-17 22:02:01
avant
1811 Les gens l'ont consulté

Cet article vous présentera le cycle de vie de PHP7. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Quel est le cycle de vie de PHP7

Architecture PHP

Introduction à SAPI

Définition : Interface de programmation d'applications serveur Port de programmation d'applications serveur . C'est l'interface permettant à PHP d'interagir avec d'autres applications. Les scripts PHP peuvent être exécutés de plusieurs manières, via un serveur Web, directement sur la ligne de commande ou intégrés dans d'autres programmes. SAPI fournit une interface pour la communication externe. Les SAPI courants incluent : cgi, fast-cgi, cli, dll du module Apache, etc.

  • CGI

CGI est une interface de passerelle commune (common gatewag interface). En termes simples, CGI est comme un programme. bridge. , connecte la page Web et le programme d'exécution dans le serveur WEB, il transmet les instructions reçues par le HTML au programme d'exécution du serveur, puis renvoie les résultats du programme d'exécution du serveur à la page HTML. CGI est extrêmement multiplateforme et peut être implémenté sur presque tous les systèmes d'exploitation.

Lorsque la méthode CGI rencontre une demande de connexion (demande utilisateur), elle doit d'abord créer un sous-processus cgi, activer un processus CGI, puis traiter la demande, et terminer le sous-processus après traitement. Il s’agit du modèle fork-and-execute. Par conséquent, un serveur utilisant CGI aura autant de sous-processus CGI qu'il y a de demandes de connexion. Le chargement répété de sous-processus est la principale raison des faibles performances CGI. Lorsque le nombre de requêtes utilisateur est très important, une grande quantité de ressources système telles que la mémoire, le temps CPU, etc. sera occupée, ce qui entraînera de faibles performances.

  • FPM (FastCGI)

fast-cgi est une version améliorée de cgi, FastCGI est comme un type CGI de longue durée qui peut être exécuté tout le temps. Tant qu'il est activé, il ne faudra pas de temps pour bifurquer à chaque fois. PHP utilise PHP-FPM (FastCGI Process Manager), le nom complet de PHP FastCGI Process Manager, pour la gestion.

Le gestionnaire de processus FastCGI (IIS ISAPI ou Apache Module) est chargé au démarrage du serveur Web. Le gestionnaire de processus FastCGI s'initialise, démarre plusieurs processus interpréteurs CGI (visibles plusieurs php-cgi) et attend les connexions du serveur Web.

Lorsqu'une requête client atteint le serveur Web, le gestionnaire de processus FastCGI sélectionne et se connecte à un interpréteur CGI. Le serveur Web envoie des variables d'environnement CGI et des entrées standard au sous-processus FastCGI php-cgi.

Une fois le sous-processus FastCGI terminé, il renvoie la sortie standard et les informations d'erreur au serveur Web à partir de la même connexion. Lorsque le processus enfant FastCGI ferme la connexion, la demande est traitée. Le processus enfant FastCGI attend et gère ensuite la prochaine connexion du gestionnaire de processus FastCGI (exécuté sur le serveur Web). En mode CGI, php-cgi se termine à ce stade.

Dans le cas ci-dessus, vous pouvez imaginer à quel point CGI est généralement lent. Chaque requête Web adressée à PHP doit réanalyser php.ini, recharger toutes les extensions et réinitialiser toutes les structures de données. Avec FastCGI, tout cela ne se produit qu’une seule fois, au démarrage du processus. Un avantage supplémentaire est que les connexions persistantes aux bases de données fonctionnent.

  • APACHE2HANDLER

PHP en tant que module Apache, le serveur Apache pré-génère plusieurs copies de processus pour résider dans la mémoire après le démarrage du système. Lorsqu'une requête se produit, ces sous-processus inactifs sont immédiatement utilisés pour le traitement, de sorte qu'il n'y a aucun retard causé par la génération de sous-processus. Ces copies du serveur ne se ferment pas immédiatement après le traitement d'une requête HTTP, mais restent sur l'ordinateur en attendant la requête suivante. La réponse aux requêtes du navigateur client est plus rapide et les performances sont plus élevées.

  • CLI

cli est le mode d'exécution en ligne de commande de php. Vous l'utilisez souvent, mais vous ne le remarquez peut-être pas (par exemple : Sous Linux, "php -m" est souvent utilisé pour rechercher les extensions installées par PHP, qui est le mode d'exécution de la ligne de commande PHP :

Appelé au démarrage du module :

struct _sapi_module_struct { 
      char *name; 
      char *pretty_name;
      int (*startup)(struct _sapi_module_struct *sapi_module); 
      int (*shutdown)(struct _sapi_module_struct *sapi_module); 
      int (*activate)(void); 
      int (*deactivate)(void); 
      size_t (*ub_write)(const char *str, size_t str_length); 
      void (*flush)(void *server_context); 
     …
}
Copier après la connexion

Appelé. à la fin du module :

int (*startup)(struct _sapi_module_struct *sapi_module);
Copier après la connexion

Appelé lors du traitement de la requête :

int (*shutdown)(struct _sapi_module_struct *sapi_module);
Copier après la connexion

Appelé après le traitement de la requête :

int (*activate)(void);
Copier après la connexion

SAPI

structure correspondant au CGI mode :

Cycle de vie CLI :

Structure

SAPI

correspondant au mode FPM :

Vie cycle du mode FPM :

Apprentissage recommandé : tutoriel vidéo php

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!