PHP中VC六、VC九、TS、NTS版本的區別與用法詳解

Thread safe(線程安全)是運行在Apache上以模塊的PHP上,若是你以CGI的模式運行PHP,請選擇非線程安全模式(non-thread safe)。php

1. VC6與VC9的區別:
VC6版本是使用Visual Studio 6編譯器編譯的,若是你的PHP是用Apache來架設的,那你就選擇VC6版本。
VC9版本是使用Visual Studio 2008編譯器編譯的,若是你的PHP是用IIS來架設的,那你就選擇 VC9版本。
VC9版本是針對IIS服務器的版本,沒有對APACHE的支持,而VC6版本對IIS和apache都提供了支持html

2.Ts與nts的區別:
Windows版的PHP從版本5.2.1開始有Thread Safe和NoneThread Safe之分。
先從字面意思上理解,Thread Safe是線程安全,執行時會進行線程(Thread)安全檢查,以防止有新要求就啓動新線程的CGI執行方式而耗盡系統資源。Non Thread Safe是非線程安全,在執行時不進行線程(Thread)安全檢查。mongodb

nts版本會有_nts後綴。官方並不建議你將Non Thread Safe 應用於生產環境,因此咱們選擇Thread Safe (ts)版本的PHP來使用。
XAMPP在http-xampp.conf中默認配置是使用ISAPI的方式apache

3.PHP的兩種執行方式:ISAPI和FastCGI。
ISAPI執行方式是以DLL動態庫的形式使用,能夠在被用戶請求後執行,在處理完一個用戶請求後不會立刻消失,因此須要進行線程安全檢查,這樣來提升程序的執行效率,因此若是是以ISAPI來執行PHP,建議選擇ThreadSafe版本;安全

而FastCGI執行方式是以單一線程來執行操做,因此不須要進行線程的安全檢查,除去線程安全檢查的防禦反而能夠提升執行效率,因此,若是是以FastCGI來執行PHP,建議選擇NonThread Safe版本。服務器

經過phpinfo(); 查看其中的 Thread Safety 項,這個項目就是查看是不是線程安全,若是是:enabled,通常來講應該是ts版,不然是nts版。app

apache中的配置方式:ide

#下面這個是加載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
#下面這兩行是加載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>

php版本區分ts和nts,其插件也區分。這點要注意。插件區分php版本(通常是大版本,如5.4,5.5)和ts版本。memcached

例如ts版本插件配置(以php5.4版本爲例):url

[memcache]
extension=php_memcache.dll

[memcached]
;extension=php_memcached.dll

[mongodb]
extension=php_mongo-1.6.8-5.4-vc9.dll


[Xdebug]
;download_url=http://xdebug.org/download.php
zend_extension="D:\phpsetup\php5.4\ext\php_xdebug-2.3.3-5.4-vc9.dll"
;xdebug.var_display_max_children=128
;xdebug.var_display_max_data=512
xdebug.var_display_max_depth=10
xdebug.max_nesting_level=100

nts版本插件配置:

[memcache]
extension=php_memcache.dll

[mongodb]
extension=php_mongo-1.6.8-5.4-vc9-nts.dll


[Xdebug]
zend_extension="ext/php_xdebug-2.3.3-5.4-vc9-nts.dll"
;xdebug.var_display_max_children=128
;xdebug.var_display_max_data=512
xdebug.var_display_max_depth=10
xdebug.max_nesting_level=100
相關文章
相關標籤/搜索