Qu'est-ce que php est utilisé pour analyser ?
PHP est un langage de script serveur et un langage interprété. Il est largement utilisé dans la construction de sites Web de petite et moyenne taille. Il n'est pas aussi lourd que Java et est plus rapide à développer. Mais comment ce langage de script est-il analysé par le serveur ?
Nous savons tous que PHP peut être embarqué dans du HTML, mais le suffixe du fichier doit se terminer par .php. S'il s'agit de .html, l'extrait de code PHP sera directement commenté par le navigateur. Fini la démonstration, regardons un exemple ci-dessous :
#test1.php <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <?php echo "我是一段PHP脚本"; ?> </body> </html>
Le résultat lors de l'accès via le navigateur après avoir utilisé PHPstudy :
Il s'agit d'un paragraphe Code très simple. On voit que le serveur transmet directement le résultat analysé au navigateur. En fait, lorsque le serveur découvre que le suffixe de ressource demandé est .php, il appellera l'analyseur PHP pour l'analyser et exécuter le. Code PHP à l'intérieur. Répondez ensuite la ressource au client. Alors voici le point : comment le code PHP est-il analysé ? Tout d'abord, nous devons d'abord comprendre les concepts associés de cgi, fastcgi et php-fpm.
Recommandations associées : "Tutoriel d'introduction à PHP"
Qu'est-ce que cgi ?
cgi (Common Gateway Interface) est en fait un protocole. Le programme qui implémente le protocole cgi peut être appelé programme CGI. Les applications peuvent interagir avec le navigateur et également utiliser l'API de base de données pour communiquer avec des utilisateurs externes. sources de données telles que les serveurs de base de données et obtenir des données à partir des serveurs de base de données. Après formatage en document HTML, celui-ci est envoyé au navigateur ou les données obtenues à partir du navigateur peuvent être placées dans la base de données. Et php-cgi est un protocole utilisé pour analyser le code PHP. Mais cet accord présente plusieurs inconvénients. Tout d'abord, chaque fois que le client demande un fichier de script PHP, le serveur fork un processus et appelle l'analyseur pour analyser le script. Lorsque le script est exécuté, le processus sera tué et chaque processus fork passera par php. ini pour initialiser l'environnement. Le processus ne peut pas être réutilisé et la surcharge d'E/S de php.ini est augmentée. Limite la vitesse d'exécution de PHP. Ainsi, le smart phper a mis au point un meilleur protocole cgi, qui était le protocole fastcgi qui est sorti plus tard.
protocole fastcgi
Gu Ming pensait, protocole cgi plus rapide. Alors, où est-il bientôt ?
Tout d'abord, fastcg résout les problèmes du php-cgi d'origine. Il permet de traiter plusieurs requêtes en un seul processus, au lieu de terminer directement le processus après le traitement d'une requête. le serveur Web s'améliore. En fait, Fastcgi démarrera d'abord un maître, analysera le fichier de configuration, initialisera l'environnement d'exécution, puis démarrera plusieurs travailleurs. Lorsqu'une demande arrive, le maître la transmet à un travailleur, qui peut alors immédiatement accepter la demande suivante. Cela évite la duplication du travail et est naturellement très efficace. Et lorsqu'il n'y a pas assez de Workers, le maître peut pré-démarrer plusieurs Workers selon la configuration et attendre. Bien sûr, lorsqu'il y a trop de Workers inactifs, certains seront arrêtés, ce qui améliore les performances et économise les ressources.
php-fpm
PHP-FPM (FastCGI Process Manager : FastCGI Process Manager) est un gestionnaire PHPFastCGI pour PHP avant 5.3.3. Pour PHP, il est un package de correctifs conçu pour intégrer la gestion des processus FastCGI dans le package PHP. Si vous utilisez PHP avant PHP5.3.3, vous devez le patcher dans votre code source PHP et vous pourrez l'utiliser après avoir compilé et installé PHP. En fait, on peut considérer php-fpm comme un interpréteur. Nous pouvons utiliser la commande : ps -aux | grep php-fpm pour afficher l'état du processus correspondant, comme indiqué ci-dessous :
L'utilisation de php-fpm peut redémarrer en douceur, modifications générales Après php.ini, le processus php-cgi ne peut pas être redémarré en douceur, ce qui signifie que vous devez redémarrer le service pour recharger la nouvelle configuration. Le mécanisme de traitement php-fpm pour cela est que les nouveaux travailleurs utilisent de nouvelles configurations et que les travailleurs existants peuvent se reposer après avoir traité le travail en cours. Ce mécanisme est utilisé pour faciliter la transition.
但是传统的php-fpm的worker是同步阻塞的,这在一定程度下也限制了程序的运行速度,并且普通的PHP是无法常驻内存的,也就意味着我们每次执行代码都需要将相同的东西重新加载到新内存去,这点跟java的servlet就不同了,java的servlet在用户访问后实例化,下一个用户就不会再次进行实例化。为了解决这些问题,强大的Rango写出了swoole拓展,swoole和fpmd的进程模型是相同的,manager都是负责管理子进程的创建和回收。但php-fpm的worker进程是同步阻塞的,swoole的worker进程是异步非阻塞的。并且swoole的http-server和fpm的差异是http-server是内存常驻的,PHP程序变成长生命周期的了。变量和对象在使用请求结束后并不会销毁,可以复用。这也就是为什么我们说swoole开启了PHP的新世界。
我们可以用简单的几句就可以创建一个异步非阻塞的http-server甚至是http2协议的server。例如:
$http = new swoole_http_server("127.0.0.1", 9501); $http->on('request', function ($request, $response) { $response->end("<h1 id="Hello-nbsp-Swoole-nbsp-rand-nbsp">Hello Swoole. #".rand(1000, 9999)."</h1>"); }); $http->start();
swoole的高性能体现在它是一个纯c编写的拓展,并且使用了全内存缓存和异步IO。使得它相对于Node.js默认是单线程的无法利用全部CPU,Golang的协程调度本身有一定性能消耗相比,有着更加不错的性能。
用图解析一波,php-fpm是这样的(图片来源于网络):
而swoole的http-server是这样的(这里的cache应该理解成框架初始化环境所使用的内存):
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

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

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)

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.

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

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.

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

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,

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.
