? ? ? 和php相識(shí)于2015年(大二)腰鬼,第一次握手它有著不愉快的經(jīng)歷角撞,曾誓言決不再接觸有關(guān)它的任何東西。無奈,年少輕狂臊泌,畢業(yè)后工作的內(nèi)容卻要天天和它打交道,papapa的打臉画机。既然和它有如此般孽緣奇分盛卡,那就好好待它,用心重新認(rèn)識(shí)它唆香。
? ? ? ? 認(rèn)識(shí)它嫌变,還是的先從它的前世今生開始。php圈有個(gè)奇怪的現(xiàn)象:他們天天在使用php躬它,卻極有可能對(duì)php的各個(gè)版本不了解腾啥,或是模糊認(rèn)識(shí)。這也難怪冯吓,我浪跡在各大博客時(shí)倘待,發(fā)現(xiàn)php的分類簡(jiǎn)直繁多。下面給出的是官網(wǎng)下載的壓縮包组贺,我們可以從壓縮包的名字入手理解:php-5.6.34-nts-Win32-VC11-x64.zip
? ? 一凸舵、首先是php,簡(jiǎn)直廢話锣披,跳過贞间。
? ? 二、5.6.34雹仿,同時(shí)也是人稱的PHP5增热,由第一個(gè)數(shù)字5決定. (注:PHP4由于太古老,對(duì)OO支持不給力已基本淘汰胧辽;PHP5是現(xiàn)在主流使用的版本峻仇;PHP6、7由于沒有在生產(chǎn)線上邑商,此文不多介紹)摄咆。第二個(gè)數(shù)字6,代表PHP5后的6版本人断, PHP5其實(shí)有5.2吭从、5.3、5.4恶迈、5.5涩金、5.6版本,由于為了之后開發(fā),對(duì)框架和擴(kuò)展的兼容步做,所以先生選擇用5.6的版本副渴。各個(gè)版本之間區(qū)別如下:
? ? ? ? PHP5.2 以前:autoload, PDO 和 MySQLi, 類型約束
? ? ? ? PHP5.2:JSON 支持
? ? ? ? PHP5.3:棄用的功能,匿名函數(shù)全度,新增魔術(shù)方法煮剧,命名空間,后期靜態(tài)綁定将鸵,Heredoc 和 Nowdoc,const, 三元運(yùn)算符勉盅,Phar
? ? ? ? PHP5.4:Short Open Tag, 數(shù)組簡(jiǎn)寫形式,Traits, 內(nèi)置 Web 服務(wù)器咨堤,細(xì)節(jié)修改
? ? ? ? PHP5.5:yield,list() 用于foreach, 細(xì)節(jié)修改
? ? ? ? PHP5.6: 常量增強(qiáng)菇篡,可變函數(shù)參數(shù),命名空間增強(qiáng)
深入了解見鏈接:? ? 01 https://www.cnblogs.com/myvic/p/7707437.html
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 02 https://www.cnblogs.com/wawahaha/p/4660354.html
? ? 三一喘、nts (Non Thread safe),非線程安全嗜暴。如果沒有這個(gè)表示即時(shí)ts(Thread safe)凸克。為什么會(huì)有這樣的區(qū)分呢?什么情況下使用非線程安全闷沥,什么時(shí)候要使用線程安全呢萎战?別爪機(jī),容我緩緩道來舆逃。大寫蚂维,只有windows&&PHP5.2.1之后,才有nts和ts之分路狮。
? ? 3.1虫啥、Non Thread Safe是非線程安全,在執(zhí)行時(shí)不進(jìn)行線程(Thread)安全檢查奄妨。
? ? 3.2涂籽、Thread Safe是線程安全,執(zhí)行時(shí)會(huì)進(jìn)行線程(Thread)安全檢查砸抛,以防止有新要求就啟動(dòng)新線程的CGI執(zhí)行方式而耗盡系統(tǒng)資源评雌。
? ? 3.3、說到CGI直焙,不得不提和并存的ISAPI景东。這是php的兩種執(zhí)行方式。
? ? ? ? 3.3.1奔誓、CGI斤吐,多進(jìn)程模式。模式對(duì)于每個(gè)HTTP請(qǐng)求都需要開辟一個(gè)進(jìn)程,即重新加載和卸載整個(gè)PHP環(huán)境曲初,其消耗巨大体谒。
? ? ? ? 3.3.2、由此推出了CGI的升級(jí)模式:FastCGI 臼婆。FastCGI可以讓PHP的進(jìn)程重復(fù)利用而不是每一個(gè)新的請(qǐng)求就重開一個(gè)進(jìn)程抒痒。同時(shí)FastCGI也可以允許幾個(gè)進(jìn)程同時(shí)執(zhí)行。這樣既解決了CGI進(jìn)程模式消耗太大的問題颁褂,又利用上了CGI進(jìn)程模式不存在線程安全問題的優(yōu)勢(shì)故响。 (抑制進(jìn)程開辟的思路)
? ? ? ? 3.3.3、ISAPI颁独,
多線程模式彩届。執(zhí)行方式是以DLL動(dòng)態(tài)庫的形式使用,可以在被用戶請(qǐng)求后執(zhí)行誓酒,在處理完一個(gè)用戶請(qǐng)求后不會(huì)馬上消失樟蠕,所以需要進(jìn)行線程安全檢查,這樣來提高程序的執(zhí)行效率靠柑。
? ? ? ?
(在前提條件全局配置php寨辩,或是在php目錄下啟動(dòng)php啦啦啦),? 可以通過命令函窗口運(yùn)行php -r "phpinfo();"歼冰。 查看其中的 Thread Safety 項(xiàng)靡狞,這個(gè)項(xiàng)目就是查看是否是線程安全,如果是:enabled隔嫡,一般來說應(yīng)該是ts版甸怕,否則是nts版。
了解完這幾點(diǎn)之后腮恩,如果看客你是選擇nts梢杭,那么建議使用FastCGI模式啟動(dòng);如果是ts庆揪,那么建議使用ISAPI模式式曲。無論那種搭配,其實(shí)最終的目的是:控制線程或是進(jìn)程數(shù)缸榛,降低資源消耗吝羞。
? ? 四、win32内颗,我下載了幾個(gè)windows的安裝包钧排,均帶有這個(gè)標(biāo)記。要強(qiáng)行解釋的話均澳,可能就是windows系統(tǒng)版本的php安裝包吧吧吧恨溜。
? ? 五符衔、VC11.其實(shí)還有VC6、VC9糟袁、VC11的區(qū)別判族。
? ? ? ? VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設(shè)的项戴,那你就選擇VC6版本形帮。(
這個(gè)問題不大,因?yàn)閺膒hp 5.3周叮,已經(jīng)沒有vc6版本提供下載了
)
? ? ? ? VC9版本是使用Visual Studio 2008編譯器編譯的辩撑,
是針對(duì)IIS服務(wù)器的版本,沒有對(duì)APACHE的支持
仿耽。如果你的PHP是用IIS來架設(shè)的合冀,那你就選擇 VC9版本。
VC9版本要求用戶安裝Microsoft Visual C++ 2008 SP1 Redistributable Package(x86 | x64)
? ? ? ?
VC11版本是使用Visual Studio 2012編譯器編譯的 项贺。VC11版本要求用戶安裝Visual C++ Redistributable for Visual Studio 2012(x86 | x64)
? ? 六君躺、x64對(duì)應(yīng)64位系統(tǒng),x86對(duì)應(yīng)32位系統(tǒng)开缎。
? ? 七晰洒、zip,解壓后可以直接使用啥箭。當(dāng)然,不嫌麻煩者治宣,可以下載source code急侥。用VS編譯生成文件,這也是可行的侮邀。
? ? 我是先生坏怪,找尋著那位迷路的Miss。最后绊茧,愿各位phper铝宵,合上電腦的剎那,有著俠客收劍入鞘的驕傲华畏!
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者