Cet article présente principalement le processus d'exécution et les concepts associés de PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
. Voyons d'abord quel support est nécessaire pour exécuter un programme PHP. Le point de départ de tout est qu'il est logique de commencer à écrire du PHP à partir de programmeurs, donc des fichiers de script PHP au niveau de l'application (y compris divers codes PHP tiers dans Composer/include) sont nécessaires. Les fichiers de script doivent être analysés et compilés avant de pouvoir être exécutés, donc une machine virtuelle PHP (généralement un moteur Zend) est également nécessaire. De plus, les scripts PHP utiliseront des fonctions et des classes dans plusieurs extensions, donc les extensions (y compris les extensions officielles, PECL et écrites par l'utilisateur) sont presque nécessaires. De plus, les programmes PHP doivent interagir avec l'extérieur (comme obtenir des paramètres à partir de la ligne de commande et obtenir des informations de demande auprès du serveur Web). Cette couche est responsable de SAPI, donc SAPI est également nécessaire.
Pour résumer ce qui précède, l'architecture du programme PHP comporte quatre couches de haut en bas, à savoir : la couche application, la couche SAPI, la couche d'extension et le moteur Zend. La relation architecturale est illustrée dans la figure ci-dessous :
(Source de l'image : http://www.nowamagic.net/libr...)
La couche SAPI possède une certaine capacité. Certaines personnes peuvent être relativement inconnues. SAPI fournit un ensemble unifié d'interfaces pour dissocier les applications de couche supérieure de l'environnement d'exploitation réel. Les fichiers PHP écrits par les utilisateurs peuvent être exécutés à l'aide de la ligne de commande ou dans Apache httpd ou FPM. Le travail de support derrière est fourni par SAPI et les développeurs l’ignorent. Grâce à SAPI, la couche de script PHP n'a pas besoin de trop prendre en compte l'environnement d'exécution spécifique, et PHP lui-même peut permettre à SAPI de fournir des implémentations uniques basées sur ses propres caractéristiques.
Mis à part les différences entre les différentes implémentations SAPI, le processus d'exécution du programme PHP peut être simplement résumé comme suit :
Programme démarrages, initialisation du moteur Zend et des composants principaux ;
Initialisation de l'extension (MINIT)
Demande reçue, activation de l'extension (RINIT) ; >
pconnect
CGI, FastCGI, PHP-FPM, etc.exit/die
serveur web. Apache httpd et Nginx communs
CGI/FastCGI:网关协议,与语言无关,所以与PHP关系也不大。两者的区别是FastCGI可以独立于web服务器,运行FastCGI协议的程序变成web服务器的内容提供方(上游)。另外与web服务器解耦后,用FastCGI协议交互的进程具有性能好、安全稳定、支持分布式等优点; php-cgi:实现FastCGI协议的PHP解析器,不能平滑重启和热加载; FPM:PHP官方的FastCGI进程管理器,可执行程序为php-fpm;支持平滑重启、热加载,运行稳定;其管理对象不是php-cgi进程,两者没什么关系。
Résumé
Merci d'avoir lu, toute correction est la bienvenue !
Recommandations associées :
Avantages de l'utilisation du conteneur de services Laravel
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!