Explication détaillée du fonctionnement de PHP
1. Toutes les applications PHP sont complétées via un serveur WEB (tel que IIS, Nginx ou Apache) et l'interprétation et l'exécution du programme du moteur PHP. Le processus de travail :
(1) Lorsque l'utilisateur saisit l'adresse du navigateur. Saisissez le nom du fichier de la page PHP à accéder, puis déclenchez une requête web et transmettez la requête au serveur WEB.
(2) Le serveur WEB accepte cette requête et détermine qu'il s'agit d'une requête PHP en fonction de son suffixe. Le serveur WEB appelle l'application PHP à laquelle l'utilisateur souhaite accéder depuis le disque dur ou la mémoire et l'envoie. au programme du moteur PHP.
(3) Le programme du moteur PHP analysera le fichier envoyé depuis le serveur WEB du début à la fin, le lira en arrière-plan selon la commande, traitera les données et générera dynamiquement la page HTML correspondante.
(4) Le moteur PHP va générer une page HTML et la renvoyer au serveur WEB. Le serveur WEB renvoie ensuite la page HTML au navigateur client.
2. Mode de fonctionnement PHP :
1) Interface de passerelle commune cgi)
2) CGI de type fast-cgi longue durée
3) cli fonctionnement en ligne de commande (interface de ligne de commande)
4) mode module Web (mode module pour exécuter des serveurs Web tels qu'Apache)
Explication supplémentaire :
1) Mode module :
Le mode module est intégré sous la forme du module mod_php5. À l'heure actuelle, la fonction du module mod_php5 est de recevoir les requêtes de fichiers PHP transmises par Apache, et de traiter ces requêtes, puis de renvoyer les résultats traités. à Apache. Si nous configurons le module PHP (mod_php5) dans son fichier de configuration avant le démarrage d'Apache, le module PHP enregistre le hook ap_hook_post_config d'apache2 et démarre ce module lorsque Apache commence à accepter les requêtes de fichiers PHP.
En plus de cette méthode de chargement au démarrage, les modules d'Apache peuvent être chargés dynamiquement au moment de l'exécution, ce qui signifie que le serveur peut être étendu sans avoir besoin de recompiler le code source, voire sans arrêter du tout le serveur. Il suffit d'envoyer le signal HUP ou AP_SIG_GRACEFUL au serveur pour notifier au serveur de recharger le module. Mais avant le chargement dynamique, nous devons compiler le module dans une bibliothèque de liens dynamiques. Le chargement dynamique à ce moment consiste à charger la bibliothèque de liens dynamiques. Le traitement des bibliothèques de liens dynamiques dans Apache est effectué via le module mod_so, donc le module mod_so ne peut pas être chargé dynamiquement, il ne peut être compilé que statiquement dans le noyau d'Apache. Cela signifie qu'il est démarré avec Apache.
2) Mode d'exécution de PHP dans Nginx (Nginx+ PHP-FPM)
Pour plus de détails, veuillez consulter la section Principe nginx + php
Supplément :
1. cgi, protocole fast-cgi
Historique de cgi
Le nom complet de CGI est "Common Gateway Interface", le serveur HTTP communique avec votre ou d'autres machines Un outil pour « parler » avec des programmes sur un serveur réseau, qui doivent s'exécuter sur un serveur réseau. CGI peut être écrit dans n’importe quel langage à condition que celui-ci comporte des variables d’entrée, de sortie et d’environnement standard. Tels que php, perl, tcl, etc.
Les premiers serveurs Web traitaient uniquement des fichiers statiques tels que le HTML, mais avec le développement de la technologie, des langages dynamiquestels que le php sont apparus. Le serveur Web ne peut pas le gérer, que dois-je faire ? Alors laissez l’interpréteur php s’en occuper ! Mais comment l’interpréteur php communique-t-il avec le serveur web ?
Afin de résoudre le problème de communication entre les différents interpréteurs de langage (tels que les interpréteurs php, python) et le serveur Web, le protocole cgi est apparu. Tant que vous écrivez un programme selon le protocole cgi, vous pouvez établir une communication entre l'interpréteur de langage et le serveur Web. Tel que le programme php-cgi.
Améliorations de fast-cgi
Avec le protocole cgi, le problème de communication entre l'interpréteur php et le serveur web est résolu, et le serveur web peut enfin gérer des langages dynamiques. Cependant, chaque fois que le serveur Web reçoit une requête, il lance un processus cgi, puis tue le processus une fois la requête terminée. S'il y a 10 000 requêtes, le processus php-cgi doit être bifurqué et tué 10 000 fois. Avez-vous déjà trouvé que c'était un gaspillage de ressources ? En conséquence, une version améliorée de cgi, fast-cgi, est apparue.
Une fois que fast-cgi a traité une requête à chaque fois, il ne tuera pas le processus, mais le conservera afin qu'il puisse gérer plusieurs requêtes à la fois. De cette façon, il n’est pas nécessaire de relancer un processus à chaque fois, ce qui améliore considérablement l’efficacité. FastCGI est une extension ouverte CGI à architecture évolutive et indépendante du langage. Son comportement principal est de conserver le processus d'interprétation CGI en mémoire et ainsi d'obtenir des performances plus élevées. Comme nous le savons tous, le chargement répété de l'interpréteur CGI est la principale raison des faibles performances CGI. Si l'interpréteur CGI reste en mémoire et accepte la planification du gestionnaire de processus FastCGI, il peut offrir de bonnes performances, une évolutivité, des fonctionnalités de basculement, etc.
2. Qu'est-ce que php-fpm
PHP-FPM est un gestionnaire PHP FastCGI, qui n'est utilisé que pour PHP. PHP-FPM est en fait un patch du code source PHP, conçu pour intégrer la gestion des processus FastCGI dans le package PHP. PHP-FPM fournit une meilleure méthode de gestion des processus PHP, qui peut contrôler efficacement la mémoire et les processus, et recharger en douceur la configuration PHP.
Le processus comprend deux types de processus : le processus maître et le processus travailleur.
Il n'y a qu'un seul processus maître, qui est chargé d'écouter le port et de recevoir les requêtes du serveur Web. Il existe généralement plusieurs processus de travail (le nombre spécifique est configuré en fonction des besoins réels). intégré à l'intérieur, qui est PHP où le code s'exécute réellement.
Recommandations associées :
Analyse des principes de fonctionnement d'apache et 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!

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

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
