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

Was bedeutet PHP VC11?

藏色散人
藏色散人Original
2021-03-16 09:54:092491Durchsuche

php vc11 bezieht sich auf die vc11-Version von PHP. Bevor Benutzer die VC11-Version herunterladen, müssen sie zuerst „VisualC++RedistributableforVisualStudio2012“ installieren.

Was bedeutet PHP VC11?

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

PHP-Fragen zur Auswahl der Versionen VC11, VC9, VC6 und Thread Safe und Non Thread Safe

Hier ist das, was ich baue. Die während der PHP-Umgebung gesammelten Informationen dienen zu Ihrer Information:

Die von der offiziellen PHP-Website heruntergeladenen PHP-Installationspakete enthalten nun alle die Wörter VC11 oder VC9. Welches Installationspaket sollten wir besser herunterladen? ? Tatsächlich gibt die offizielle PHP-Website die Antwort:

Die VC6-Version wird mit dem Visual Studio 6-Compiler kompiliert. Wenn Ihr PHP mit Apache erstellt wurde, sollten Sie die VC6-Version wählen. (Es gibt derzeit kein VC6 für PHP).

VC9 bedeutet, dass diese Version von PHP mit VisualStudio2008 kompiliert wird, während VC11 mit VisualStudio2012 kompiliert wird. Das bedeutet:

Wenn Sie die VC9-Version herunterladen, müssen Sie zuerst VisualC++RedistributableforVisualStudio2008SP1 installieren.

Wenn Sie die VC11-Version herunterladen, müssen Sie zuerst VisualC++RedistributableforVisualStudio2012 installieren Die Systemversion, wenn es Windows ist, finden Sie hier: http://windows.php.net/download/

Ist das Betriebssystem 32-Bit oder 64-Bit? Wenn es 32-Bit ist, wählen Sie die Version mit „x86“; wenn es 64-Bit ist, wählen Sie die Version mit „x64“. Schauen Sie sich dann an, was ein WEB-Server ist. Wenn es sich um die IIS-Serie handelt, wählen Sie die Version mit „Non Thread Safe“. Wenn es sich um die Apache httpd-Serie handelt, wählen Sie die Version mit „Thread Safe“. Wenn es sich um Apache httpd handelt, hängt es auch davon ab, wie die Binärversion kompiliert wird. Es gibt drei Kompilierungstypen: VC6, VC9 und VC11 (repräsentiert Visual C++ 6, Visual C++ 2008 bzw. Visual C++ 2012). Hier liegt das Problem: Die neueste offizielle Version von PHP, 5.5, wurde mit VC11 kompiliert und 5.4 wurde mit VC9 kompiliert. Die neueste Version von Apache httpd wird jedoch immer noch mit VC6 kompiliert. Dies bedeutet eine überraschende Tatsache: Die offizielle Version von Apache httpd und die offizielle Version von PHP sind tatsächlich inkompatibel! Wie funktioniert also das vorhandene Apache+PHP unter Windows? Sie können VC11 verwenden, um Apache httpd selbst zu kompilieren, aber das ist zu aufwändig. PHP empfiehlt offiziell, eine gepackte Version von Apache httpd herunterzuladen. Wir empfehlen diese Website: http://www.apachelounge.com/download/ Punkt muss erklärt werden: Dieser VC11 unterstützt kein XP. Wenn Sie wie ich XP-Nostalgie haben, können Sie nur auf 5.4 aktualisieren. 24 wird mit VC11 kompiliert, und VC11 unterstützt XP und 2003 nicht.

Empfohlenes Lernen: „

PHP-Video-Tutorial

Wenn Sie ein Linux-System haben, laden Sie den Quellcode von PHP hier herunter: http://cn2.php.net/downloads.php

Anders als bei der Windows-Version oben: Was Sie hier herunterladen, kann nicht direkt verwendet werden. Um es zu installieren, müssen Sie eine Reihe von Kompilierungssoftware wie gcc und make installieren. Ich habe gesehen, dass ./configure, make und make install im Dokument erwähnt werden, das sich auf die Quellcodeversion von PHP bezieht.

PHP selbst zu kompilieren ist noch schwieriger. Es gibt viele abhängige Bibliotheken und es gibt viele Fallstricke, in die die Leute hineinfallen. Ich werde darüber in einem anderen Artikel sprechen. Wenn Sie Schwierigkeiten damit haben, können Sie eine kompilierte Version finden, insbesondere die offizielle Softwarebibliothek der jeweiligen Distribution. Im Folgenden werden zur Veranschaulichung das beliebte Ubuntu-System und das Centos-System verwendet.

Deb-Paketverwaltungsstil (Ubuntu, Debian)

Verwenden Sie den PHP-Befehl apt-cache, um nach vielen Ergebnissen zu suchen Vollständiger Befehl Ja: apt-get install php5

Dies ist offensichtlich nicht immer anwendbar, da der Befehl die Versionsnummer 5 enthält und niemand weiß, was in Zukunft mit PHP6 passieren wird.

Wenn Sie eine Befehlszeilen-PHP-Engine in der Shell installieren möchten, installieren Sie dieses Paket

apt-getinstall php5-cli

RPM-Paketverwaltung (Fedora, RedHat, SUSE, CentOS)apt-getinstall php5-cli

RPM包管理(Fedora、RedHat、SUSE、CentOS)

    yuminstall php

yuminstall php

Wenn es sich um eine PHP-Befehlszeile handelt, installieren Sie yuminstall php-cli

Wie wähle ich die Thread Safe- und Non ThreadSafe-Version aus?

Ab Version 5.2.1 ist die Windows-Version von PHP in ThreadSafe (Thread-Sicherheit) und None Thread Safe (NTS, Nicht-Thread-Sicherheit) unterteilt. Was ist der Unterschied zwischen den beiden? 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 Windows-Systeme im Gegensatz zu Linux/Unix-Systemen, die Multiprozess-Arbeitsmethoden verwenden, How-Multithreading verwenden funktioniert. 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 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.

​ Verstehen Sie es zunächst wörtlich: Thread Safe ist Thread-Sicherheit. Während der Ausführung werden Thread-Sicherheitsprüfungen (Thread) durchgeführt, um zu verhindern, dass bei der CGI-Ausführung neue Threads gestartet werden, wenn neue Anforderungen vorliegen und die Systemressourcen erschöpft sind. Non Thread Safe ist nicht Thread-sicher und führt während der Ausführung keine Thread-Sicherheitsprüfungen durch.

Wenn Sie also ISAPI zum Ausführen von PHP verwenden, müssen Sie die ThreadSafe-Version (Thread-sicher) verwenden. Wenn Sie den FastCGI-Modus zum Ausführen von PHP verwenden, ist keine Thread-Sicherheitsprüfung erforderlich. Verwenden Sie None Thread Safe (NTS). Nicht-Thread-sicher) ) Version kann die Effizienz besser verbessern.

Schauen wir uns die beiden Ausführungsmethoden von PHP an: ISAPI und FastCGI.

Die ISAPI-Ausführungsmethode wird in Form einer dynamischen DLL-Bibliothek verwendet, die nach Anforderung durch den Benutzer ausgeführt werden kann. Sie verschwindet nicht sofort nach der Verarbeitung einer Benutzeranforderung, daher sind Thread-Sicherheitsprüfungen erforderlich, um die Ausführungseffizienz zu verbessern des Programms. Wenn Sie also ISAPI zum Ausführen von PHP verwenden, wird empfohlen, die Thread-Safe-Version zu wählen. Die FastCGI-Ausführungsmethode verwendet einen einzelnen Thread zum Ausführen von Vorgängen, sodass keine Thread-Sicherheitsprüfungen erforderlich sind Der Schutz durch Thread-Sicherheitsprüfungen kann die Ausführungseffizienz verbessern. Wenn FastCGI zum Ausführen von PHP verwendet wird, wird daher empfohlen, die nicht-threadsichere Version zu wählen.

Das obige ist der detaillierte Inhalt vonWas bedeutet PHP VC11?. 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