PHP一共給了四個(gè)版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,這幾個(gè)版本有什么區(qū)別?該如何選擇呢?
PHP官網(wǎng)提示,只有PHP 5.3以上版本有VC9個(gè)VC6兩個(gè)版本,之前的所以版本均為VC6。
一、如何選擇 PHP5.3 的 VC9 版本和 VC6 版本
VC6 版本是使用 Visual Studio 6 編譯器編譯的,如果你的 PHP 是用 Apache 來架設(shè)的,那你就選擇VC6 版本。
VC9 版本是使用 Visual Studio 2008 編譯器編譯的,如果你的 PHP 是用 IIS 來架設(shè)的,那你就選擇VC9 版本。
二、如何選擇 PHP 5.3 的 Thread Safe 和 Non Thread Safe 版本
先從字面意思上理解,Thread Safe 是線程安全,執(zhí)行時(shí)會(huì)進(jìn)行線程(Thread)安全檢查,以防止有新要求就啟動(dòng)新線程的 CGI 執(zhí)行方式而耗盡系統(tǒng)資源。Non Thread Safe 是非線程安全,在執(zhí)行時(shí)不進(jìn)行線程(Thread)安全檢查。
再來看 PHP 的兩種執(zhí)行方式:ISAPI 和 FastCGI。
ISAPI 執(zhí)行方式是以 DLL 動(dòng)態(tài)庫的形式使用,可以在被用戶請(qǐng)求后執(zhí)行,在處理完一個(gè)用戶請(qǐng)求后不會(huì)馬上消失,所以需要進(jìn)行線程安全檢查,這樣來提高程序的執(zhí)行效率,所以如果是以 ISAPI 來執(zhí)行 PHP,建
議選擇 Thread Safe 版本;
FastCGI執(zhí)行方式是以單一線程來執(zhí)行操作,所以不需要進(jìn)行線程的安全檢查,除去線程安全檢查的防護(hù)反而可以提高執(zhí)行效率,所以,如果是以 FastCGI(無論搭配 IIS 6 或 IIS 7)執(zhí)行 PHP ,都建議下載、執(zhí)行 non-thread safe 的 PHP (PHP 的二進(jìn)位檔有兩種包裝方式:msi 、zip ,請(qǐng)下載 zip 套件)。
而線程安全檢查正是為ISAPI方式的PHP準(zhǔn)備的,因?yàn)橛性S多php模塊都不是線程安全的,所以需要使用Thread Safe的PHP。
所以,對(duì)于PHP 5.2選擇Thread Safe版本安裝,而對(duì)于PHP 5.3則下載None-Thread Safe,執(zhí)行PHP比較有效率。