Maison  >  Article  >  développement back-end  >  Explication détaillée des modes de fonctionnement CGI, FastCGI, APACHE2HANDLER et CLI de PHP

Explication détaillée des modes de fonctionnement CGI, FastCGI, APACHE2HANDLER et CLI de PHP

*文
*文original
2017-12-26 10:50:173859parcourir

Quelles sont les différences entre CGI, FastCGI, APACHE2HANDLER et CLI ? Cet article présente principalement les quatre méthodes d'exécution courantes de PHP et explique en détail CGI, FastCGI, APACHE2HANDLER et CLI. J'espère que cela aide tout le monde.

SAPI : port de programmation d'applications serveur de l'interface 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.

1. CGI

CGI est l'interface de passerelle commune. C'est un programme En termes simples, CGI est comme un pont qui relie les pages Web et le programme d'exécution. dans le serveur WEB est connecté, 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 de l'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.

2. FastCGI

fast-cgi est une version améliorée de FastCGI est comme un CGI de longue durée qui peut être exécuté à tout moment. comme 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.

Chargez le gestionnaire de processus FastCGI (IIS ISAPI ou Apache Module) 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.

3. APACHE2HANDLER
PHP est un module Apache Une fois le système démarré, le serveur Apache pré-génére plusieurs copies de processus et réside dans la mémoire. sera utilisé immédiatement. Ces sous-processus inactifs sont traités afin qu'il n'y ait aucun retard causé par la génération des 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.

4. 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 : nous l'utilisons souvent. sous Linux) Utilisez "php -m" pour savoir quelles extensions PHP a installées, quel est le mode d'exécution de la ligne de commande PHP

Recommandations associées :

php fpm et fast -Qu'est-ce que CGI a à voir avec ça ? Et il y a une autre question, c'est-à-dire que PHP fonctionne en mode CGI ? 🎜>Installation de php fpm ? : enregistrement d'installation de php php-fpm

Tutoriel pour configurer l'environnement php apache mysql dans les environnements Windows et Linux_Tutoriel 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!

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