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

首頁(yè) 后端開(kāi)發(fā) php教程 PHP關(guān)于VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本選擇的問(wèn)題

PHP關(guān)于VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本選擇的問(wèn)題

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等一堆編譯軟件??吹轿臋n里說(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(線程安全)和None Thread Safe(NTS,非線程安全)之分,這兩者不同在于何處?到底應(yīng)該用哪種?這里做一個(gè)簡(jiǎn)單的介紹。

  從2000年10月20日發(fā)布的第一個(gè)Windows版的PHP3.0.17開(kāi)始的都是線程安全的版本,這是由于與Linux/Unix系統(tǒng)是采用多進(jìn)程的工作方式不同的是Windows系統(tǒng)是采用多線程的工作方式。如果在IIS下以CGI方式運(yùn)行PHP會(huì)非常慢,這是由于CGI模式是建立在多進(jìn)程的基礎(chǔ)之上的,而非多線程。一般我們會(huì)把PHP配置成以ISAPI的方式來(lái)運(yùn)行,ISAPI是多線程的方式,這樣就快多了。但存在一個(gè)問(wèn)題,很多常用的PHP擴(kuò)展是以Linux/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)程模式不存在線程安全問(wèn)題的優(yōu)勢(shì)。

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

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

?? 再來(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)行線程安全檢查,這樣來(lái)提高程序的執(zhí)行效率,所以如果是以ISAPI來(lái)執(zhí)行PHP,建議選擇Thread Safe版本;

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

以上就介紹了PHP關(guān)于VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本選擇的問(wèn)題,包括了方面的內(nèi)容,希望對(duì)PHP教程有興趣的朋友有所幫助。

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話題

如何將兩個(gè)PHP陣列組合獨(dú)特的值? 如何將兩個(gè)PHP陣列組合獨(dú)特的值? Jul 02, 2025 pm 05:18 PM

要合并兩個(gè)PHP數(shù)組并保留唯一值,有兩種主要方法。1.對(duì)于索引數(shù)組或僅需值去重的情況,使用array_merge和array_unique組合:先用array_merge($array1,$array2)合并數(shù)組,再用array_unique()去重,最終得到包含所有唯一值的新數(shù)組;2.對(duì)于關(guān)聯(lián)數(shù)組且希望保留第一個(gè)數(shù)組中的鍵值對(duì)時(shí),使用 運(yùn)算符:$result=$array1 $array2,這將確保第一個(gè)數(shù)組中的鍵不會(huì)被第二個(gè)數(shù)組覆蓋。這兩種方法分別適用于不同場(chǎng)景,根據(jù)是否需要保留鍵名或只關(guān)注

如何使用PHP退出功能? 如何使用PHP退出功能? Jul 03, 2025 am 02:15 AM

exit()是PHP中用于立即終止腳本執(zhí)行的函數(shù),常見(jiàn)用途包括:1.在檢測(cè)到異常情況時(shí)提前終止腳本,如文件不存在或驗(yàn)證失?。?.調(diào)試時(shí)輸出中間結(jié)果并停止執(zhí)行;3.結(jié)合header()重定向后調(diào)用exit()防止后續(xù)代碼執(zhí)行;此外,exit()可接受字符串參數(shù)作為輸出內(nèi)容或整數(shù)作為狀態(tài)碼,其別名為die()。

將語(yǔ)義結(jié)構(gòu)應(yīng)用于html的文章,部分和旁邊 將語(yǔ)義結(jié)構(gòu)應(yīng)用于html的文章,部分和旁邊 Jul 05, 2025 am 02:03 AM

在HTML中合理使用語(yǔ)義化標(biāo)簽?zāi)芴嵘?yè)面結(jié)構(gòu)清晰度、可訪問(wèn)性和SEO效果。1.用于獨(dú)立內(nèi)容區(qū)塊,如博客文章或評(píng)論,需保持自包含性;2.用于歸類(lèi)相關(guān)內(nèi)容,通常包含標(biāo)題,適用于頁(yè)面不同模塊;3.用于與主內(nèi)容相關(guān)但非核心的輔助信息,如側(cè)邊欄推薦或作者簡(jiǎn)介。實(shí)際開(kāi)發(fā)中應(yīng)結(jié)合、等標(biāo)簽,避免過(guò)度嵌套,保持結(jié)構(gòu)簡(jiǎn)潔,并通過(guò)開(kāi)發(fā)者工具驗(yàn)證結(jié)構(gòu)合理性。

請(qǐng)求的操作需要高程窗戶(hù) 請(qǐng)求的操作需要高程窗戶(hù) Jul 04, 2025 am 02:58 AM

遇到“此操作需要提升權(quán)限”提示時(shí),說(shuō)明你需要管理員權(quán)限才能繼續(xù)。解決方法包括:1.右鍵選擇“以管理員身份運(yùn)行”程序或設(shè)置快捷方式始終以管理員身份運(yùn)行;2.檢查當(dāng)前賬戶(hù)是否為管理員賬戶(hù),若不是則切換或請(qǐng)求管理員協(xié)助;3.用管理員權(quán)限打開(kāi)命令提示符或PowerShell執(zhí)行相關(guān)命令;4.在必要時(shí)通過(guò)獲取文件所有權(quán)或修改注冊(cè)表等手段繞過(guò)限制,但此類(lèi)操作需謹(jǐn)慎并充分了解風(fēng)險(xiǎn)。確認(rèn)權(quán)限身份并嘗試上述方法通??山鉀Q問(wèn)題。

如何在PHP中牢固地處理文件上傳? 如何在PHP中牢固地處理文件上傳? Jul 08, 2025 am 02:37 AM

要安全處理PHP文件上傳需驗(yàn)證來(lái)源與類(lèi)型、控制文件名與路徑、設(shè)置服務(wù)器限制并二次處理媒體文件。1.驗(yàn)證上傳來(lái)源通過(guò)token防止CSRF并通過(guò)finfo_file檢測(cè)真實(shí)MIME類(lèi)型使用白名單控制;2.重命名文件為隨機(jī)字符串并根據(jù)檢測(cè)類(lèi)型決定擴(kuò)展名存儲(chǔ)至非Web目錄;3.PHP配置限制上傳大小及臨時(shí)目錄Nginx/Apache禁止訪問(wèn)上傳目錄;4.GD庫(kù)重新保存圖片清除潛在惡意數(shù)據(jù)。

您如何按值與PHP中的參考傳遞變量? 您如何按值與PHP中的參考傳遞變量? Jul 08, 2025 am 02:42 AM

InPHP,variablesarepassedbyvaluebydefault,meaningfunctionsorassignmentsreceiveacopyofthedata,whilepassingbyreferenceallowsmodificationstoaffecttheoriginalvariable.1.Whenpassingbyvalue,changestothecopydonotimpacttheoriginal,asshownwhenassigning$b=$aorp

如何在Apache中設(shè)置OCSP釘書(shū)釘以獲得更好的SSL性能? 如何在Apache中設(shè)置OCSP釘書(shū)釘以獲得更好的SSL性能? Jul 05, 2025 am 12:03 AM

toenableOcSpstaplingInapache,確保您的eumeetTheprerequisites and ConconfigureThenEncorsaryDirectives.first,conjectyYouareSAPACHE2.4.14.1ORNEWERWITHMOD_SSLENABLED,OPENSSL0.9.9.8HORNEWEN

PHP找到了最后一次發(fā)生的位置 PHP找到了最后一次發(fā)生的位置 Jul 09, 2025 am 02:49 AM

在PHP中查找子字符串最后一次出現(xiàn)的位置,最直接的方法是使用strrpos()函數(shù)。1.使用strrpos()函數(shù)可直接獲取子字符串在主字符串中最后一次出現(xiàn)的起始位置索引,若未找到則返回false,語(yǔ)法為strrpos($haystack,$needle,$offset=0)。2.若需忽略大小寫(xiě),可使用strripos()函數(shù)實(shí)現(xiàn)不區(qū)分大小寫(xiě)的查找。3.對(duì)于中文等多字節(jié)字符,應(yīng)使用mbstring擴(kuò)展中的mb_strrpos()函數(shù)以確保返回字符位置而非字節(jié)位置。4.注意strrpos()返回f

See all articles