Heim >Backend-Entwicklung >PHP-Problem >Was bedeutet PHP NTS?

Was bedeutet PHP NTS?

藏色散人
藏色散人Original
2021-07-27 10:38:122542Durchsuche

php nts bezieht sich auf „None-Thread Safe“, was bedeutet, dass bei der Ausführung im schnellen CGI-Modus in PHP die nts-Version für eine bessere Leistung ausgewählt werden soll.

Was bedeutet PHP NTS?

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer

php nts Was bedeutet das?

NTS steht für None-Thread Safe. Im Allgemeinen wird diese Version ausgewählt, wenn im schnellen CGI-Modus ausgeführt wird, der eine bessere Leistung bietet.

TS bezieht sich auf Thread-Sicherheit, also Thread-Sicherheit. Diese Version wird im Allgemeinen ausgewählt, wenn IIS im ISAPI-Modus geladen wird.

Besonders:

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 Linux/Unix-Systeme Multiprozess-Arbeitsmethoden verwenden Das Windows-System verwendet eine Multithread-Arbeitsmethode. Wenn Sie PHP im CGI-Modus unter IIS ausführen, ist es sehr langsam. Dies liegt daran, dass der CGI-Modus auf Multiprozess und nicht auf Multithread basiert. Im Allgemeinen konfigurieren wir PHP für die Ausführung im ISAPI-Modus. ISAPI ist ein Multithread-Modus, der viel schneller ist. Es gibt jedoch ein Problem. Viele häufig verwendete PHP-Erweiterungen basieren auf dem Multiprozess-Denken von Linux/Unix. Wenn diese Erweiterungen im ISAPI-Modus ausgeführt werden, gehen sie schief und führen zum Absturz von IIS. Daher ist der CGI-Modus die sicherste Möglichkeit, PHP unter IIS auszuführen. Der CGI-Modus erfordert jedoch das Neuladen und Entladen der gesamten PHP-Umgebung für jede HTTP-Anfrage und verursacht einen enormen Verbrauch.

Um der Effizienz und Sicherheit von PHP unter IIS Rechnung zu tragen, hat Microsoft die 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.

Deshalb:

Wenn Sie ISAPI zum Ausführen von PHP verwenden, müssen Sie die Thread-sichere (Thread-sichere) Version verwenden.

Wenn Sie den FastCGI-Modus zum Ausführen von PHP verwenden, ist keine Thread-Sicherheitsprüfung erforderlich. Verwenden Sie „Keine“. Die Thread-Safe-Version (NTS, nicht Thread-sicher) kann die Effizienz besser verbessern.

Überprüfen Sie das Thread-Sicherheitselement über die Druckumgebung. Mit diesem Element wird überprüft, ob es Thread-sicher ist. Im Allgemeinen sollte es sich um die ts-Version handeln.

A: Beim Herunterladen der PHP-Installationsdatei habe ich gesehen, dass es zwei verschiedene Binärdateien gibt, z. B. Non Thread Safe und Thread Safe, wie auf dieser Seite aufgeführt: http://windowsphp.net/download/. Was bedeutet das und was ist der Unterschied zwischen ihnen?

Der Unterschied kann auch im obigen Link eingesehen werden.

F: Dies gilt hauptsächlich für Webserver. Wenn Sie einen Webserver mit Apchae- oder IIS-Version 7 oder niedriger verwenden, sollten Sie eine Thread-sichere Installationsdatei wählen. Wenn Sie den Fast-CGI-Modus verwenden, können Sie wählen Nicht-Thread-Sicherheit, da der Webserver selbst Thread-Sicherheit garantieren kann.

F: Wie oben erwähnt, verwenden einige Webserver bei der Verarbeitung von Anwendungsanforderungen Multithreading und nicht Multiprozess, sodass ein Fehler auftritt , muss das Programm etwas zusätzliche Erfahrung aufwenden, um mit der Konsistenz der Daten im Register umzugehen, also um die Thread-Sicherheit zu gewährleisten.

Natürlich gibt es auch den Compiler, der beim Kompilieren von Binärdateien verwendet wird: vc9 (vs-Serie) vc6 (gcc)

Ob Thread-Sicherheit verwendet werden soll, hängt also hauptsächlich von der von Ihrem Webserver verwendeten PHP-Anforderungsverarbeitungsmethode ab Multithread-Verarbeitung, dann wählen Sie bitte Thread-sicher, andernfalls wählen Sie nicht-Thread-sicher. Wie oben erwähnt, kann der Fast-CGI-Modus nicht-Thread-sicher wählen.

【Empfohlenes Lernen: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas bedeutet PHP NTS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn