PHP的VC9、VC6、Thread Safe、Non Thread Safe版本有什么區(qū)別

2014-11-07 17:28:42來源:WEB開發(fā)者筆記作者:

PHP一共給了四個(gè)版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,這幾個(gè)版本有什么區(qū)別?該如何選擇呢?

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比較有效率。

關(guān)鍵詞:PHP