Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Diskussion über die Unterschiede zwischen mehreren PHP-Versionen

Eine kurze Diskussion über die Unterschiede zwischen mehreren PHP-Versionen

little bottle
little bottlenach vorne
2019-04-24 11:29:554966Durchsuche

Der Herausgeber dieses Artikels wird Sie durch die Unterschiede zwischen verschiedenen PHP-Versionen führen. Freunde, die interessiert sind, können mehr darüber erfahren.

Bei der PHP-Version wurde die Geschwindigkeit der Veröffentlichung neuer Versionen seit der Einführung von Version 5 erheblich verbessert. Ab PHP5.2, 5.3, 5.4, 5.5 beträgt sie fast 6.0.

Hinweis: Ecshop-Benutzer verwenden bitte bewusst die Version php5.2.17. hehe.

Wenn wir PHP von der offiziellen PHP-Website herunterladen, werden wir den Unterschied zwischen vc6 und vc9 feststellen. Was bedeutet das?

VC6 ist der ältere Visual Studio 6-Compiler. Wenn Sie diese Version des Compilers zum Kompilieren von PHP-Code verwenden und Apache als Anwendungsserver verwenden, wählen Sie vc6.
VC9 ist der Visual Studio 2008-Compiler, der mit dem VS-Editor von Microsoft kompiliert wird. Wenn Sie IIS als Anwendungsserver verwenden, wählen Sie vc9.

Wir haben also festgestellt, dass es in der dekomprimierten Datei von php-5.2.17-nts-Win32-VC6-x86.zip einen Unterschied zwischen nts und no nts gibt. Was bedeutet das?

Dies beginnt mit der 5.2-Serienversion von PHP. Ab Version 5.2.1 gibt es einen Unterschied zwischen ts und nts, Thread Safe (Thread-Sicherheit) und None Thread Safe (NTS, Nicht-Thread-Sicherheit)

Die Windows-Version von PHP verfügt ab Version 5.2 über Thread .1 Was ist der Unterschied zwischen Safe (Thread-Sicherheit) und None Thread Safe (NTS, Non-Thread-Sicherheit)? Welches sollte verwendet werden? Hier ist eine kurze Einführung.

Ab der ersten Windows-Version von PHP 3.0.17, die am 20. Oktober 2000 veröffentlicht wurde, sind alle Versionen threadsicher. Dies liegt daran, dass das Linux/Unix-System eine Multiprozess-Arbeitsmethode verwendet und Windows The Das System verwendet eine Multithread-Arbeitsmethode. Wenn Sie PHP im CGI-Modus unter IIS ausführen, ist es sehr langsam, da der CGI-Modus auf Multiprozess und nicht auf Multithreading basiert. Wir werden PHP so konfigurieren, dass es unter Windows im ISAPI-Modus läuft, da ISAPI ein Multithread-Modus ist, der viel schneller ist.

Es gibt jedoch ein Problem. Viele häufig verwendete PHP-Erweiterungen basieren auf der Multiprozess-Idee von Linux/Unix. Diese Erweiterungen können bei der Ausführung im ISAPI-Modus fehlerhaft sein und den IIS-Prozess abstürzen lassen. Daher ist der CGI-Modus für IIS die sicherste Art, PHP auszuführen, aber der CGI-Modus erfordert das Neuladen und Entladen der gesamten PHP-Umgebung für jede HTTP-Anfrage und sein Verbrauch ist enorm.
Um der Effizienz und Sicherheit von PHP unter IIS Rechnung zu tragen, hat Microsoft eine FastCGI-Lösung bereitgestellt. FastCGI ermöglicht die Wiederverwendung von PHP-Prozessen, anstatt einen Prozess für jede neue Anfrage erneut zu öffnen. Gleichzeitig kann FastCGI auch die gleichzeitige Ausführung mehrerer Prozesse ermöglichen. Dadurch wird nicht nur das Problem des übermäßigen Verbrauchs des CGI-Prozessmodus gelöst, sondern auch die Tatsache ausgenutzt, dass im CGI-Prozessmodus keine Thread-Sicherheitsprobleme auftreten.
Wenn Sie also ISAPI zum Ausführen von PHP verwenden, müssen Sie die Thread Safe-Version (Thread Safe) verwenden. Wenn Sie den FastCGI-Modus zum Ausführen von PHP verwenden, ist keine Thread-Sicherheitsprüfung erforderlich. Verwenden Sie None Thread Safe (; Die NTS-Version (nicht Thread-sicher) kann die Effizienz besser verbessern.

Laut verschiedenen Webservern, d. h. Anwendungsservern, verwenden einige bei der Verarbeitung von Anwendungsanforderungen Multithreading anstelle von Multiprozessen, da Threads gemeinsam genutzte Register und Speicher umfassen Es ist leicht, Fehler zu machen ( Betrachten Sie die Situation von C-Sprachzeigern. Dann benötigt das System Zeit und Ressourcen, um die Daten in den Registern zu verarbeiten und ihre Konsistenz sicherzustellen, um die Thread-Sicherheit sicherzustellen.

Ob Thread Safe (Thread-Sicherheit) verwendet werden soll, hängt also hauptsächlich von der vom Webserver verwendeten PHP-Anforderungsverarbeitungsmethode ab. Wenn es sich um eine Multithread-Verarbeitung wie die ISAPI-Methode von IIS handelt, wählen Sie bitte Thread-Sicherheit . Wenn es sich um FastCGI handelt, wählen Sie „Nicht threadsicher“.

Letzter Vorschlag: Wenn Sie unter IIS ISAPI zum Ausführen von PHP verwenden, verwenden Sie die Thread Safe-Version (Thread-sicher). Wenn Sie FastCGI zum Ausführen von PHP verwenden, verwenden Sie None Thread Safe (NTS, nicht Thread-sicher). )-Version.

Hinweis: PHP5.2 verfügt nicht über VC9, PHP5.3 und PHP5.4 verfügen nicht über VC6. hehe. Ab PHP 5.5 werden XP und Win2003 nicht mehr unterstützt, und es unterstützt auch VC11, hahahaha.

Verwandte Tutorials: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Unterschiede zwischen mehreren PHP-Versionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen