国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Backend-Entwicklung PHP-Tutorial PHP-Probleme bezüglich VC11, VC9, VC6 und Thread-sicherer und nicht-threadsicherer Versionsauswahl

PHP-Probleme bezüglich VC11, VC9, VC6 und Thread-sicherer und nicht-threadsicherer Versionsauswahl

Aug 08, 2016 am 09:24 AM
apache fastcgi httpd php

這里是我在搭建php環(huán)境時(shí)收集的資料供大家參考:

現(xiàn)在PHP官網(wǎng)上下載PHP安裝包都有VC11或VC9的字樣,這是什么含義,我們應(yīng)該下載哪種安裝包更好呢?其實(shí)PHP官網(wǎng)給出了答案:

VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來(lái)架設(shè)的,那你就選擇VC6版本。(現(xiàn)在PHP已經(jīng)沒(méi)有VC6了)。

VC9意思就是該版本PHP是用VisualStudio2008編譯的,而VC11則是用VisualStudio2012編譯的。這意味著

如果你下載的是VC9版本的,就需要先安VisualC++RedistributableforVisualStudio2008SP1,

如果你下載的是VC11版本的,就需要先安VisualC++RedistributableforVisualStudio2012.

搭建php首先看操作系統(tǒng)的版本,如果是Windows的在這里下:http://windows.php.net/download/

操作系統(tǒng)是32位還是64位?如果是32位的,就選擇帶“x86”的版本,如果是64位的,就選擇帶“x64”的版本。然后看WEB服務(wù)器是什么?如果是IIS系列,就選擇帶“Non Thread Safe”的版本,如果是Apache httpd系列,就選擇帶“Thread Safe”的版本。如果是Apache httpd還要看這個(gè)二進(jìn)制版本是怎么編譯的,有三種編譯類(lèi)型,分別是:VC6、VC9、VC11(分別代表Visual C++ 6、Visual C++ 2008、Visual C++ 2012)。這里就有麻煩了:PHP官方的最新版本5.5已經(jīng)用VC11編譯,5.4是用VC9編譯的??墒茿pache httpd的最新版本呢,至今還是用VC6編譯。這意味著一個(gè)驚人的事實(shí):Apache httpd的官方版本和PHP的官方版本竟然是無(wú)法兼容的!那現(xiàn)有的Windows下的Apache+PHP是怎么搞的呢?可以自己用VC11編譯Apache httpd,但這太折騰了,PHP官方建議下載第三方打包好的Apache httpd版本,推薦了這個(gè)站點(diǎn):http://www.apachelounge.com/download/,需要說(shuō)明一點(diǎn):這個(gè)VC11不支持XP,如果你像我一樣有XP懷舊癥,最高只能升級(jí)到5.4.24,5.5是用VC11編譯的,而VC11不支持XP和2003。

如果是Linux系的在這里下載PHP的源碼:http://cn2.php.net/downloads.php

與上面Windows版不同的是,這里下載到的不能直接用,只是PHP的源碼,要安裝需要自己編譯,要編譯就需要安裝gcc、make等一堆編譯軟件。看到文檔里說(shuō)./configure、make、make install,針對(duì)的就是PHP的源碼版本而言。

自己編譯php就更麻煩了,依賴(lài)的庫(kù)一大堆,等著人掉進(jìn)去的坑也有一大堆,我將在另一篇文章里說(shuō)。如果嫌麻煩,可以找已經(jīng)編譯好的版本,具體的說(shuō)就是各個(gè)發(fā)行版的官方的軟件庫(kù)。下面以流行的ubuntu系和centos系為例分別說(shuō)明;

deb包管理式(ubuntu、Debian)

用apt-cache search php命令可以搜出很多結(jié)果,我們需要是“php5”,完整的命令是:apt-get install php5

這顯然不是永遠(yuǎn)適用的,因?yàn)槊钪杏邪姹咎?hào)5,未來(lái)PHP6是什么情況誰(shuí)也不知道。

如果想在shell中安裝一個(gè)命令行的php引擎,就安裝這個(gè)包

apt-getinstall php5-cli

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

yuminstall php

如果是php命令行,就安裝yuminstall php-cli

如何選擇Thread Safe和Non ThreadSafe版本?

??? Windows版的PHP從版本5.2.1開(kāi)始有ThreadSafe(線(xiàn)程安全)和None Thread Safe(NTS,非線(xiàn)程安全)之分,這兩者不同在于何處?到底應(yīng)該用哪種?這里做一個(gè)簡(jiǎn)單的介紹。

  從2000年10月20日發(fā)布的第一個(gè)Windows版的PHP3.0.17開(kāi)始的都是線(xiàn)程安全的版本,這是由于與Linux/Unix系統(tǒng)是采用多進(jìn)程的工作方式不同的是Windows系統(tǒng)是采用多線(xiàn)程的工作方式。如果在IIS下以CGI方式運(yùn)行PHP會(huì)非常慢,這是由于CGI模式是建立在多進(jìn)程的基礎(chǔ)之上的,而非多線(xiàn)程。一般我們會(huì)把PHP配置成以ISAPI的方式來(lái)運(yùn)行,ISAPI是多線(xiàn)程的方式,這樣就快多了。但存在一個(gè)問(wèn)題,很多常用的PHP擴(kuò)展是以L(fǎng)inux/Unix的多進(jìn)程思想來(lái)開(kāi)發(fā)的,這些擴(kuò)展在ISAPI的方式運(yùn)行時(shí)就會(huì)出錯(cuò)搞垮IIS。因此在IIS下CGI模式才是 PHP運(yùn)行的最安全方式,但CGI模式對(duì)于每個(gè)HTTP請(qǐng)求都需要重新加載和卸載整個(gè)PHP環(huán)境,其消耗是巨大的。

  為了兼顧IIS下PHP的效率和安全,微軟給出了FastCGI的解決方案。FastCGI可以讓PHP的進(jìn)程重復(fù)利用而不是每一個(gè)新的請(qǐng)求就重開(kāi)一個(gè)進(jìn)程。同時(shí)FastCGI也可以允許幾個(gè)進(jìn)程同時(shí)執(zhí)行。這樣既解決了CGI進(jìn)程模式消耗太大的問(wèn)題,又利用上了CGI進(jìn)程模式不存在線(xiàn)程安全問(wèn)題的優(yōu)勢(shì)。

?????先從字面意思上理解,Thread Safe是線(xiàn)程安全,執(zhí)行時(shí)會(huì)進(jìn)行線(xiàn)程(Thread)安全檢查,以防止有新要求就啟動(dòng)新線(xiàn)程的CGI執(zhí)行方式而耗盡系統(tǒng)資源。Non Thread Safe是非線(xiàn)程安全,在執(zhí)行時(shí)不進(jìn)行線(xiàn)程(Thread)安全檢查。

 因此,如果是使用ISAPI的方式來(lái)運(yùn)行PHP就必須用ThreadSafe(線(xiàn)程安全)的版本;而用FastCGI模式運(yùn)行PHP的話(huà)就沒(méi)有必要用線(xiàn)程安全檢查了,用None Thread Safe(NTS,非線(xiàn)程安全)的版本能夠更好的提高效率。

?? 再來(lái)看PHP的兩種執(zhí)行方式:ISAPI和FastCGI。

? ISAPI執(zhí)行方式是以DLL動(dòng)態(tài)庫(kù)的形式使用,可以在被用戶(hù)請(qǐng)求后執(zhí)行,在處理完一個(gè)用戶(hù)請(qǐng)求后不會(huì)馬上消失,所以需要進(jìn)行線(xiàn)程安全檢查,這樣來(lái)提高程序的執(zhí)行效率,所以如果是以ISAPI來(lái)執(zhí)行PHP,建議選擇Thread Safe版本;

??? 而FastCGI執(zhí)行方式是以單一線(xiàn)程來(lái)執(zhí)行操作,所以不需要進(jìn)行線(xiàn)程的安全檢查,除去線(xiàn)程安全檢查的防護(hù)反而可以提高執(zhí)行效率,所以,如果是以FastCGI來(lái)執(zhí)行PHP,建議選擇Non Thread Safe版本。

Das Obige stellt die Probleme von PHP in Bezug auf die Auswahl von VC11, VC9, VC6 und Thread-sicheren und nicht-threadsicheren Versionen vor, einschlie?lich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich sein wird, die an PHP-Tutorials interessiert sind.

Erkl?rung dieser Website
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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie upgrade ich die PHP -Version auf? Wie upgrade ich die PHP -Version auf? Jun 27, 2025 am 02:14 AM

Das Upgrade der PHP -Version ist eigentlich nicht schwierig, aber der Schlüssel liegt in den Betriebsschritten und Vorsichtsma?nahmen. Im Folgenden finden Sie die spezifischen Methoden: 1. Best?tigen Sie die aktuelle PHP -Version und verwenden Sie die Umgebung aus der laufenden Umgebung. Verwenden Sie die Befehlszeile oder die Phpinfo.php -Datei, um sie anzuzeigen. 2. W?hlen Sie die geeignete neue Version aus und installieren Sie sie. Es wird empfohlen, es mit 8.2 oder 8.1 zu installieren. Linux -Benutzer verwenden Package Manager und MacOS -Benutzer verwenden Homebrew. 3.. Konfigurationsdateien und Erweiterungen migrieren, php.ini aktualisieren und die erforderlichen Erweiterungen installieren; 4. Testen Sie, ob die Website normal ausgeführt wird, überprüfen Sie das Fehlerprotokoll, um sicherzustellen, dass kein Kompatibilit?tsproblem vorliegt. Befolgen Sie diese Schritte und Sie k?nnen das Upgrade in den meisten Situationen erfolgreich abschlie?en.

Wie verhindern Sie CSRF-Angriffe (CSRF) CSRF in PHP? Wie verhindern Sie CSRF-Angriffe (CSRF) CSRF in PHP? Jun 28, 2025 am 02:25 AM

Topreventcsrfattacksinphp, Implementanti-csrftokens.1) GenerateAndSecuretokenseuseRandom_Bytes () orbin2hex (Random_Bytes (32)), Savethemin $ _session und IncludetheThItHididInputs

PHP -Anf?ngerhandbuch: Detaillierte Erl?uterung der lokalen Umgebungskonfiguration PHP -Anf?ngerhandbuch: Detaillierte Erl?uterung der lokalen Umgebungskonfiguration Jun 27, 2025 am 02:09 AM

Um eine PHP -Entwicklungsumgebung einzurichten, müssen Sie die entsprechenden Tools ausw?hlen und die Konfiguration korrekt installieren. ① Die grundlegendste lokale PHP -Umgebung erfordert drei Komponenten: den Webserver (Apache oder Nginx), das PHP selbst und die Datenbank (wie MySQL/Mariadb); ② Es wird empfohlen, dass Anf?nger Integrationspakete wie XAMPP oder MAMP verwenden, die den Installationsprozess vereinfachen. XAMPP ist für Windows und MacOS geeignet. Nach der Installation werden die Projektdateien in das HTDOCS -Verzeichnis platziert und über Localhost aufgerichtet. ③MAMP ist für Mac -Benutzer geeignet und unterstützt eine bequeme Umstellung von PHP -Versionen, aber die kostenlose Version hat begrenzte Funktionen. ④ Erweiterte Benutzer k?nnen sie manuell durch Homebrew in macOS/Linux -Systemen installieren

Wie kombinieren Sie zwei einzigartige Werte für PHP -Arrays? Wie kombinieren Sie zwei einzigartige Werte für PHP -Arrays? Jul 02, 2025 pm 05:18 PM

Um zwei PHP -Arrays zusammenzuführen und eindeutige Werte zu behalten, gibt es zwei Hauptmethoden. 1. Verwenden Sie für Index -Arrays oder nur Deduplizierung Array_merge und Array_unique -Kombinationen: Zuerst merge array_merge ($ array1, $ array2) und verwenden Sie dann Array_unique (), um sie endgültig zu erhalten, um ein neues Array zu erhalten, das alle eindeutigen Werte enth?lt. 2. Verwenden Sie für assoziative Arrays und m?chten im ersten Array Schlüsselwertepaare beibehalten: $ result = $ array1 $ array2, was sicherstellt, dass die Schlüssel im ersten Array vom zweiten Array nicht überschrieben werden. Diese beiden Methoden gelten für verschiedene Szenarien, je nachdem, ob der Schlüsselname beibehalten wird oder nur der Fokus liegt

Wie benutze ich die PHP -Exit -Funktion? Wie benutze ich die PHP -Exit -Funktion? Jul 03, 2025 am 02:15 AM

exit () ist eine Funktion in PHP, mit der die Skriptausführung sofort beendet wird. Zu den gemeinsamen Verwendungen geh?ren: 1. Beenden Sie das Skript im Voraus, wenn eine Ausnahme erkannt wird, z. 2. Ausgabe Zwischenergebnisse w?hrend des Debuggens und Stoppenausführung; 3. Aufrufen von Exit () nach Umleitung in Verbindung mit Header (), um die nachfolgende Codeausführung zu verhindern; Zus?tzlich kann Exit () String -Parameter als Ausgabeinhalt oder Ganzzahlen als Statuscode akzeptieren, und sein Alias ??ist die ().

Anwendung der semantischen Struktur mit Artikel, Abschnitt und beiseite in HTML Anwendung der semantischen Struktur mit Artikel, Abschnitt und beiseite in HTML Jul 05, 2025 am 02:03 AM

Die rationale Verwendung semantischer Tags in HTML kann die Klarheit, Zug?nglichkeit und SEO -Effekte der Seitenstruktur verbessern. 1. für unabh?ngige Inhaltsbl?cke wie Blog-Beitr?ge oder Kommentare muss sie in sich geschlossen werden. 2. für klassifizierungsbezogene Inhalte, die normalerweise Titel enthalten, ist für verschiedene Module der Seite geeignet. 3.. Wird für Hilfsinformationen im Zusammenhang mit dem Hauptinhalt verwendet, nicht jedoch Kern, wie z. B. Seitenleistenempfehlungen oder Autorprofile. In der tats?chlichen Entwicklung sollten Etiketten kombiniert und andere, überm??ige Verschachtelung vermeiden, die Struktur einfach halten und die Rationalit?t der Struktur durch Entwicklerwerkzeuge überprüfen.

Wie greife ich auf Sitzungsdaten in PHP auf? Wie greife ich auf Sitzungsdaten in PHP auf? Jun 30, 2025 am 01:33 AM

Um auf Sitzungsdaten in PHP zugreifen zu k?nnen, müssen Sie zuerst die Sitzung starten und dann das Hyperglobal -Array $ _Session überarbeiten. 1. Die Sitzung muss mit Session_Start () gestartet werden, und die Funktion muss vor jeder Ausgabe aufgerufen werden. 2. überprüfen Sie bei Zugriff auf Sitzungsdaten, ob der Schlüssel vorhanden ist. Sie k?nnen ISSET ($ _ Session ['Key']) oder Array_key_exists ('Key', $ _ Session) verwenden; 3. Setzen oder aktualisieren Sitzungsvariablen müssen dem Array $ _Session nur Werte zuweisen, ohne manuell zu speichern. 4. L?schen Sie spezifische Daten mit uneingestellter ($ _ Session ['Key']), l?schen Sie alle Daten und setzen Sie $ _Session auf ein leeres Array.

Was sind rekursive Funktionen in PHP? Was sind rekursive Funktionen in PHP? Jun 29, 2025 am 02:02 AM

Rekursive Funktionen beziehen sich auf Selbstberechtigungsfunktionen in PHP. Die Kernelemente sind 1. Definieren der Terminierungsbedingungen (Basisbeispiele), 2. Zerlegung des Problems und das Aufrufen von selbst rekursiv (rekursive Beispiele). Es ist geeignet, mit hierarchischen Strukturen umzugehen, doppelte Unterprobleme zu zerlegen oder die Lesbarkeit der Code zu verbessern, z. B. Berechnung von Faktorien, Durchqueren von Verzeichnissen usw. Es ist jedoch erforderlich, auf das Risiko des Speicherkonsums und des Stapelüberlaufs zu achten. Beim Schreiben sollten die Ausstiegsbedingungen gekl?rt werden, die grundlegenden Beispiele sollten allm?hlich angesprochen werden, die redundanten Parameter sollten vermieden und kleine Eing?nge getestet werden. Beim Scannen eines Verzeichnisses trifft die Funktion beispielsweise auf ein Unterverzeichnis und ruft sich rekursiv auf, bis alle Ebenen durchquert werden.

See all articles