PHP版本中的VC6,VC9,VC11,TS,NTS區別

來源:互聯網
上載者:User

標籤:

以windows為例,看看下載到得php zip的檔案名稱

php-5.4.4-nts-Win32-VC9-x86.zip


VC6:legacy Visual Studio 6 compiler,是使用這個編譯器編譯的。
VC9:Visual Studio 2008 compiler,就是這個編譯器編譯的。

這個其實沒有什麼太大的影響,因為從php 5.3,已經沒有vc6版本提供下載了

 

IIS

如果想使用IIS配置PHP的話,那麼需要選擇Non-Thread Safe(NTS)版本的PHP

 

Apache

如果你是用的Apache的版本來自Apache Lounge(website:http://apachelounge.com/),可以使用PHP VC11 x86或者x64版本。

如果你使用的是從apache.org下載的Apache1或者Apache2來搭建PHP環境的話,只能使用VC6版本,無法使用VC9+以上版本。

 

VC9 VC11

VC9和VC11是PHP的最新版本(這兩個版本分別通過Visual Studio 2008和Visual Studio 2012編譯),其中包含了對於效能和穩定性的改進。

VC9版本要求使用者安裝Microsoft Visual C++ 2008 SP1 Redistributable Package(x86 | x64)

VC11版本要求使用者安裝Visual C++ Redistributable for Visual Studio 2012(x86 | x64)


TS:Thread Safe 安全執行緒, 執行時會進行線程(Thread)安全檢查
NTS:Non Thread Safe 非安全執行緒, 在執行時不進行線程(Thread)安全檢查

我使用Apache+PHP的模式下,一般是把PHP作為一個Module load到apache中,那麼以apache父進程-多子進程的工作模式,是需要進行安全執行緒檢查的,所以如果是以這種方式執行php,選擇ts版本

那麼如果是使用fastcgi,比如說用php-fpm管理php執行,則不需要進行安全執行緒檢查,則選擇nts版本的php

---------------------------------------------------------------------------------------------------------------------------
php 5.5.0 beta 1發布後, 安裝出現問題, 家中電腦升級是成功的, 可公司的電腦一直提示無法載入到服務. 作業系統都一樣的, 沒什麼區別. www.php.net官網左側的說明提醒了我.

php-5.5.0beta1-Win32-VC11-x86

安裝包的名字也已經說明了, 要運行必須安裝vc11, x86表示32位, 假如是x64就是64位, 位元對於安裝vc11有協助, 個人建議vc11 x86, x64兩個版本都安裝上比較好, 反正沒衝突.

然後啟動服務, 搞定. phpinfo資訊如下:

-----------------------------------------------------------------------------------------------------------------------------

VC6:legacy Visual Studio 6 compiler,就是使用這個編譯器編譯的。
VC9:Visual Studio 2008 compiler,就是用微軟的VS編輯器編譯的。
由於apache.org只提供VC6的版本,所以使用原版apache時只能使用VC6。(www.apachelounge.com上有apache VC9的版本提供,應該可以和PHP VC9配合,沒用過)
TS:Thread Safe 安全執行緒, 執行時會進行線程(Thread)安全檢查,以防止有新要求就啟動新線程的CGI執行方式而耗盡系統資源
NTS:Non Thread Safe 非安全執行緒, 在執行時不進行線程(Thread)安全檢查
PHP的兩種執行方式:ISAPI和FastCGI。
ISAPI(Internet Server Application Programming Interface)執行方式是以DLL動態庫的形式使用,可以在被使用者請求後執行,在處理完一個使用者請求後不會馬上消失,所以需要進行安全執行緒檢查,這樣來提高程式的執行效率,所以如果是以ISAPI來執行PHP,建議選擇Thread Safe版本
apache中的配置方式:

#下面這個是載入TS版本的php必須的
LoadModule php5_module “xxx/php5apache2_2.dll”
#下面這行可有可無

AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt


FastCGI執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去安全執行緒檢查的防護反而可以提高執行效率,所以,如果是以FastCGI來執行PHP,建議選擇Non Thread Safe版本。
apache中的配置方式:

#下面這兩行是載入NTS版本的php必須的,不可以直接寫成Action application/x-httpd-php “c:/wamp/bin/php/php3.5.6/php-cgi.exe”!
ScriptAlias /php/ "C:/wamp/bin/php/php3.5.6/"
Action application/x-httpd-php “/php/php-cgi.exe”

#另外,還要有之前的AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt,這樣才能認識php格式的檔案

#這樣配置完可能還會因為許可權問題而無法用php-cgi.exe解析php網頁,所以還要加上下面這段

<Directory "C:/wamp/bin/php/php5.3.6/">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
官方並不建議你將Non Thread Safe 應用於生產環境,所以我們選擇Thread Safe 版本的PHP來使用。
XAMPP在http-xampp.conf中預設配置是使用ISAPI的方式

PHP版本中的VC6,VC9,VC11,TS,NTS區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.