Maison  >  Article  >  développement back-end  >  Qu’est-ce que SAPI en PHP ? Comment y parvenir ? (images et texte)

Qu’est-ce que SAPI en PHP ? Comment y parvenir ? (images et texte)

不言
不言original
2018-09-18 15:13:096658parcourir

Le contenu de cet article porte sur qu'est-ce que SAPI en PHP ? Comment y parvenir ? (Images et texte), 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 vous sera utile.

SAPI, je l'ai vérifié spécifiquement. C'est l'abréviation de Server Application Programming Interface, qui signifie interface de programmation d'applications côté serveur.

Il s'agit de l'interface fournie par le noyau PHP au monde extérieur pour appeler ses services, c'est-à-dire que les systèmes externes peuvent appeler les services de compilation de scripts et d'exécution de scripts fournis par PHP via SAPI. Il existe de nombreux SAPI implémentés en PHP, Cli et Fpm sont les plus courants.

À partir de la figure ci-dessous, vous pouvez clairement comprendre comment le système externe appelle les services PHP via SAPI

Qu’est-ce que SAPI en PHP ? Comment y parvenir ? (images et texte)

L'image vient d'Internet

Ce qui suit concerne principalement le fonctionnement de nos Cli et Fpm communs.

Cli

Cli (Command Line Interface), qui est l'interface de ligne de commande, est utilisée pour exécuter des scripts PHP sous la ligne de commande, tout comme Shell, c'est exécuter un script PHP est le moyen le plus simple.

Cli est un mode à processus unique. Il est fermé directement après le traitement de la demande. Le cycle de vie passe par le démarrage du module, le démarrage de la demande, l'exécution du script, l'arrêt de la demande et l'arrêt du module. , et le processus de traitement clé est le suivant :

main()-> php_cli_startup()-> do_cli()-> php_module_shutdown()
Fpm

Fpm (FastCGI Process Manager) est un gestionnaire de processus pour le mode de fonctionnement PHP FastCGI. Comme le montre sa définition, la fonction principale de Fpm est la gestion des processus.

FastCGI est un protocole de communication entre les serveurs Web (tels que Nginx, Apache) et les gestionnaires. Il s'agit d'un protocole de communication de couche application similaire à HTTP.
Remarque : ce n’est qu’un protocole !

Fpm est un modèle multi-processus, qui se compose d'un processus maître et de plusieurs processus de travail. Le processus maître créera un socket lors de son démarrage, mais il ne recevra ni ne traitera les demandes. Au lieu de cela, le processus enfant forké terminera la réception et le traitement des demandes. Autrement dit, le processus maître gère le processus de travail et le processus de travail est la véritable demande de traitement.

Fpm effectuera d'abord l'opération d'enregistrement SAPI après le démarrage ; puis il entrera dans la module startup étape du cycle de vie PHP, au cours de laquelle les fonctions de hook MINT définies par chaque extension seront appelées. Ensuite, une série d'opérations d'initialisation sera effectuée, et enfin les processus maître et travailleur entreront dans différents liens de traitement.

Le cycle de vie du processus de rédaction est le suivant :

Qu’est-ce que SAPI en PHP ? Comment y parvenir ? (images et texte)

L'image provient d'Internet

Les principales expériences de son cycle de vie Ces étapes : attente des requêtes, analyse des requêtes, initialisation des requêtes, exécution des scripts PHP et fermeture des requêtes.

Le processus maître gère principalement le processus de rédaction de trois manières différentes, à savoir le mode statique (static), le mode dynamique (dynamic) et le mode à la demande (ondemand). Le mode spécifique à utiliser peut être spécifié en MP dans la configuration de la conf

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!

Déclaration:
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