Maison >développement back-end >Problème PHP >Que signifie php nts ?

Que signifie php nts ?

藏色散人
藏色散人original
2021-07-27 10:38:122542parcourir

php nts fait référence à "None-Thread Safe", ce qui signifie sécurité sans thread ; lors de l'exécution en mode cgi rapide en PHP, choisissez la version nts pour de meilleures performances.

Que signifie php nts ?

L'environnement d'exploitation de cet article : système Windows7, version PHP7.1, ordinateur DELL G3

php nts Qu'est-ce que cela signifie ?

NTS signifie None-Thread Safe. Généralement, cette version est sélectionnée lors de l'exécution en mode cgi rapide, qui offre de meilleures performances.

TS fait référence à Thread Safety, qui est la sécurité des threads. Cette version est généralement sélectionnée lorsque IIS est chargé en mode ISAPI.

Spécifique : 

À partir de la première version Windows de PHP 3.0.17 publiée le 20 octobre 2000, toutes les versions sont thread-safe. Cela est dû au fait que les systèmes Linux/Unix utilisent des méthodes de travail multi-processus. Le système Windows utilise une méthode de travail multithread. Si vous exécutez PHP en mode CGI sous IIS, cela sera très lent car le mode CGI est basé sur le multi-processus et non sur le multi-thread. Généralement, nous configurerons PHP pour qu'il s'exécute en mode ISAPI. ISAPI est un mode multithread, beaucoup plus rapide. Mais il y a un problème. De nombreuses extensions PHP couramment utilisées sont développées sur la base de la pensée multi-processus de Linux/Unix. Lorsque ces extensions sont exécutées en mode ISAPI, elles tournent mal et font tomber IIS. Par conséquent, le mode CGI est le moyen le plus sûr d'exécuter PHP sous IIS, mais le mode CGI nécessite de recharger et de décharger l'intégralité de l'environnement PHP pour chaque requête HTTP, et sa consommation est énorme.

Afin de prendre en compte l'efficacité et la sécurité de PHP sous IIS, Microsoft a fourni la solution FastCGI. FastCGI permet de réutiliser les processus PHP au lieu de rouvrir un processus à chaque nouvelle requête. Dans le même temps, FastCGI peut également permettre à plusieurs processus de s'exécuter en même temps. Cela résout non seulement le problème de la consommation excessive du mode processus CGI, mais profite également du fait que le mode processus CGI ne présente pas de problèmes de sécurité des threads.

Par conséquent :

Si vous utilisez ISAPI pour exécuter PHP, vous devez utiliser la version Thread Safe (thread safe)

Si vous utilisez le mode FastCGI pour exécuter PHP, il n'est pas nécessaire d'utiliser la vérification de la sécurité des threads, utilisez Aucun Thread ; La version sécurisée (NTS, non thread-safe) peut mieux améliorer l'efficacité.

Vérifiez l'élément Thread Safety via l'environnement d'impression phpinfo(); Cet élément permet de vérifier s'il est thread-safe. S'il est : activé, en général, il doit s'agir de la version ts, sinon il s'agit de la version nts.

A : Lors du téléchargement du fichier d'installation PHP, j'ai vu qu'il existe deux fichiers binaires différents, tels que Non Thread Safe et Thread Safe, comme indiqué sur cette page : http://windows.net/download/. Qu'est-ce que cela signifie et quelle est la différence entre eux ?

La différence peut également être consultée dans le lien ci-dessus.

Q : Ceci concerne principalement le serveur Web. Dans l'environnement Windows, si le serveur Web que vous utilisez est apchae ou iis 7 ou inférieur, vous devez choisir un fichier d'installation thread-safe, vous pouvez choisir. sécurité non-thread, car le serveur Web lui-même peut garantir la sécurité des threads.

Q : Comme mentionné ci-dessus, cela concerne les serveurs Web. Certains serveurs Web utilisent le multi-threading au lieu du multi-processus lors du traitement des requêtes d'application. La méthode de threading implique des registres et de la mémoire partagés, c'est donc très simple si une erreur se produit. , le programme devra dépenser une certaine expérience supplémentaire pour gérer la cohérence des données dans le registre, c'est-à-dire pour garantir la sécurité des threads.

Bien sûr, il y a aussi le compilateur utilisé lors de la compilation des fichiers binaires : vc9 (vs series) vc6 (gcc)

Donc, l'utilisation ou non de la sécurité des threads dépend principalement de la méthode de traitement des requêtes PHP utilisée par votre serveur Web. traitement multithread, alors veuillez choisir thread-safe, sinon choisissez non-thread-safe Comme mentionné ci-dessus, la méthode Fast-cgi peut choisir non-thread-safe.

【Apprentissage recommandé : Tutoriel vidéo 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