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