Maison  >  Article  >  développement back-end  >  Une brève discussion sur les différences entre plusieurs versions de PHP

Une brève discussion sur les différences entre plusieurs versions de PHP

little bottle
little bottleavant
2019-04-24 11:29:555039parcourir

L'éditeur de cet article vous fera découvrir les différences entre les différentes versions de PHP. Les amis intéressés pourront en apprendre davantage. J'espère que cela vous sera utile.

La version PHP, depuis l'entrée dans la version 5, la vitesse de publication des nouvelles versions a considérablement augmenté. À partir de PHP5.2, 5.3, 5.4, 5.5, elle est presque 6.0.

Remarque : les utilisateurs d'ecshop doivent utiliser consciemment la version php5.2.17. héhé.

Lors du téléchargement de php depuis le site officiel de php, nous trouverons la différence entre vc6 et vc9. Qu'est-ce que cela signifie ?

VC6 est l'ancien compilateur Visual Studio 6. Si vous utilisez cette version du compilateur pour compiler du code PHP et utilisez Apache comme serveur d'applications, choisissez vc6.
VC9 est le compilateur Visual Studio 2008, compilé à l'aide de l'éditeur VS de Microsoft. Si vous utilisez IIS comme serveur d'applications, choisissez vc9.

Donc, nous avons remarqué que dans le fichier décompressé de php-5.2.17-nts-Win32-VC6-x86.zip, il y a une différence entre nts et non nts. Qu'est-ce que cela signifie ?

Cela commence avec la version série 5.2 de php. À partir de la version 5.2.1, il existe une différence entre ts et nts, Thread Safe (sécurité des threads) et None Thread Safe (NTS, sécurité sans thread)

La version Windows de PHP a Thread à partir de la version 5.2 .1 Quelle est la différence entre Safe (sécurité des threads) et None Thread Safe (NTS, sécurité sans thread) ? Lequel faut-il utiliser ? Voici une brève introduction.

À partir de la première version Windows de PHP 3.0.17 publiée le 20 octobre 2000, toutes les versions sont thread-safe. En effet, le système Linux/Unix utilise une méthode de travail multi-processus et Windows. Le système 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-threading. Nous allons configurer PHP pour qu'il s'exécute en mode ISAPI sous Windows, car ISAPI est une méthode 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 l'idée multi-processus de Linux/Unix. Ces extensions fonctionneront mal lorsqu'elles seront exécutées en mode ISAPI et risqueront de faire planter le processus IIS. Par conséquent, pour IIS, le mode CGI est le moyen le plus sûr d'exécuter PHP, 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) et 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 Safe ( La version NTS, non Thread-safe) peut mieux améliorer l'efficacité.

Selon différents serveurs Web, c'est-à-dire les serveurs d'applications, lors du traitement des requêtes d'application, certains utilisent le multi-threading au lieu du multi-processus, car les threads impliqueront des registres et de la mémoire partagés, il est donc facile de faire des erreurs (. considérons la situation des pointeurs du langage C), alors le système a besoin de temps et de ressources pour traiter les données dans les registres et assurer leur cohérence, ce qui consiste à assurer la sécurité des threads.

Donc, l'utilisation ou non de Thread Safe (sécurité des threads) dépend principalement de la méthode de traitement des requêtes PHP utilisée par le serveur Web. S'il s'agit d'un traitement multithread tel que la méthode ISAPI d'IIS, veuillez choisir la sécurité des threads. . S'il s'agit de FastCGI, choisissez Non thread-safe.

Dernière suggestion : sous IIS, si vous utilisez ISAPI pour exécuter PHP, utilisez la version Thread Safe (thread-safe) ; si vous utilisez FastCGI pour exécuter PHP, utilisez la version None Thread Safe (NTS, non-thread-safe) ) version.

Remarque : php5.2 n'a pas de vc9, php5.3 et php5.4 n'ont pas de vc6. héhé. À partir de PHP 5.5, il ne prend plus en charge XP et Win2003, et il prend également en charge vc11, hahahaha.

Tutoriels associés : 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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer