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!

PHP reste un outil puissant et largement utilisé dans la programmation moderne, en particulier dans le domaine du développement Web. 1) PHP est facile à utiliser et intégré de manière transparente aux bases de données, et est le premier choix pour de nombreux développeurs. 2) Il prend en charge la génération de contenu dynamique et la programmation orientée objet, adaptée à la création et à la maintenance des sites Web rapidement. 3) Les performances de PHP peuvent être améliorées en mettant en cache et en optimisant les requêtes de base de données, et sa vaste communauté et son écosystème riche le rendent toujours important dans la pile technologique d'aujourd'hui.

En PHP, les références faibles sont mises en œuvre via la classe FaibleRreference et n'empêcheront pas le collecteur des ordures de récupérer des objets. Les références faibles conviennent aux scénarios tels que les systèmes de mise en cache et les auditeurs d'événements. Il convient de noter qu'il ne peut garantir la survie des objets et que la collecte des ordures peut être retardée.

La méthode \ _ \ _ Invoke permet aux objets d'être appelés comme des fonctions. 1. Définissez la méthode \ _ \ _ Invoquer afin que l'objet puisse être appelé. 2. Lorsque vous utilisez la syntaxe $ obj (...), PHP exécutera la méthode \ _ \ _ Invoke. 3. Convient pour des scénarios tels que la journalisation et la calculatrice, l'amélioration de la flexibilité et de la lisibilité du code.

Les fibres ont été introduites dans PHP8.1, améliorant les capacités de traitement simultanées. 1) Les fibres sont un modèle de concurrence léger similaire aux coroutines. 2) Ils permettent aux développeurs de contrôler manuellement le flux d'exécution des tâches et conviennent à la gestion des tâches à forte intensité d'E / O. 3) L'utilisation des fibres peut écrire du code plus efficace et réactif.

La communauté PHP fournit des ressources et un soutien riches pour aider les développeurs à se développer. 1) Les ressources incluent la documentation officielle, les tutoriels, les blogs et les projets open source tels que Laravel et Symfony. 2) Le support peut être obtenu via les canaux Stackoverflow, Reddit et Slack. 3) Les tendances de développement peuvent être apprises en suivant la RFC. 4) L'intégration dans la communauté peut être réalisée grâce à la participation active, à la contribution au code et au partage d'apprentissage.

PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

Le PHP n'est pas en train de mourir, mais d'adapter et d'évoluer constamment. 1) PHP a subi plusieurs itérations de version depuis 1994 pour s'adapter aux nouvelles tendances technologiques. 2) Il est actuellement largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et d'autres domaines. 3) PHP8 introduit le compilateur JIT et d'autres fonctions pour améliorer les performances et la modernisation. 4) Utilisez OPCACHE et suivez les normes PSR-12 pour optimiser les performances et la qualité du code.

L'avenir de PHP sera réalisé en s'adaptant aux nouvelles tendances technologiques et en introduisant des fonctionnalités innovantes: 1) s'adapter aux architectures de cloud computing, de conteneurisation et de microservice, en prenant en charge Docker et Kubernetes; 2) introduire des compilateurs JIT et des types d'énumération pour améliorer l'efficacité des performances et du traitement des données; 3) Optimiser en continu les performances et promouvoir les meilleures pratiques.


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

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Dreamweaver Mac
Outils de développement Web visuel

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.