1. 程式人生 > >PHP中ts和nts版本

PHP中ts和nts版本

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的方式

windows下的php有VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe等多個版本。那麼這些版本有什麼區別呢?

    VC9的版本是用legacy VS 2008編譯的,VC6的版本是用legacy VS6編譯的。

    如果你是在windows下使用IIS+PHP的話,你需要下載VC9的版本。
    如果你是在windows下使用Apache+PHP的話,你需要下載VC6的版本。


    Non Thread Safe是指非執行緒安全,Thread Safe則是指執行緒安全。

    如果是使用ISAPI的方式來執行PHP就必須用Thread Safe(執行緒安全)的版本;而用FastCGI模式執行PHP的話就沒有必要用執行緒安全檢查了,用None Thread Safe(NTS,非執行緒安全)的版本能夠更好的提高效率。

相關推薦

PHPtsnts版本

VC6:legacy Visual Studio 6 compiler,就是使用這個編譯器編譯的。 VC9:Visual Studio 2008 compiler,就是用微軟的VS編輯器編譯的。 由於apache.org只提供VC6的版本,所以使用原版apache時只能使用

PHP TS NTS 版本選擇

加載 comm http 獨立 lin 內存 工作 出現 ... 在PHP 開發和生產環境搭建過程中,需要安裝PHP語言解析器。官方提供了2種類型的版本,線程安全(TS)版和非線程安全(NTS)版,有時後我們開發環境和實際生產的環境有所不同,因此也需要選擇安裝對應的PHP版

phpTSNTS的區別

server 使用 rdquo 保護 linu apach 獨立 ive 後臺 ts(Thread-Safety)即線程安全,多線程訪問時,采用了加鎖機制,當一個線程訪問該類的某個數據時,進行保護,其他線程不能進行訪問直到該線程讀取完,其他線程才可使用。不會出現數據不一致或

PHPVC6、VC9、TSNTS版本的區別與用法詳解

進行 系統資源 stc 詳解 ron 線程安全 info 啟動 win 1. VC6與VC9的區別: VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。 VC9版本是使用Visual Studio 20

PHP安裝包TSNTS的區別

TS指Thread Safety,即執行緒安全,一般在IIS以ISAPI方式載入的時候選擇這個版本。 NTS即None-Thread Safe,一般以fast cgi方式執行的時候選擇這個版本,具有更好的效能。 ts(Thread-Safety)即執行緒安全,多執行緒訪問時,採用了加

PHPincluderequire語句的區別

warning mar 處理 生成 區別 war 插入 php 通過 通過 include 或 require 語句,可以將 PHP 文件的內容插入另一個 PHP 文件(在服務器執行它之前)。 include 和 require 語句是相同的,除了錯誤處理方面:

phpsessioncookie的使用及區別

網上商城 標識 禁止 bsp 身份驗證 main str 什麽 ets 1.cookie的使用 什麽是 Cookie? cookie 常用於識別用戶。cookie 是服務器留在用戶計算機中的小文件。每當相同的計算機通過瀏覽器請求頁面時,它同時會發送 cookie。通過

php學習之道:phpis_filefile_exist的差別,and推斷文件夾is_dir

文件 -m post 文件的 style 文件夾 原因 -a 文件名 在PHP中,is_file和file_isexist是有非常小差別的 1) is_file: $path ="/path/to/file/text.txt"; if(file_exis

PHPempty()isset()的區別

tom 常量 def -1 最大 解析 如果 sse add 先說一下他們的共同點: 都可以判定一個變量是否為空; 都返回boolean類型,即true或false。 下面具體說一下他們用法之間的區別: isset()用來檢測變量是否設置,只能用於變量,因為

PHPincluderequire的區別詳解

for in repl 這不 語句 沒有 16px targe size something 1、概要    require()語句的性能與include()相類似,都是包括並運行指定文件。不同之處在於:對include()語句來說,在執行文件時每次都要進行讀取和評估;

phpincluderequire的區別(整理)

服務 條件 工作方式 作用 就會 php程序 兩個 發生 ref require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文

說一下PHPdie()exit()區別

選擇 fop class 系統 light 常用 spa ner 終端 PHP手冊:die()Equivalent to exit()。 說明:die()和exit()都是中止腳本執行函數;其實exit和die這兩個名字指向的是同一個函數,die()是exit()函數的別名

PHP echo print 的區別

但是 有一個 clas 變量 時報 所有 點號 標準 htm 一般來說,PHP中動態輸出HTML內容,是通過print 和 echo 語句來實現的,在實際使用中, print 和 echo 兩者的功能幾乎是完全一樣。可以這麽說,凡是有一個可以使用的地方,另一個也可以使用。但

PHP includerequire的區別

require 文件的 沒有 流程控制 nbsp 執行 文件 php文件 函數 PHP中引用文件的方法有兩種:require和include 他們的用途是完全一樣的。 require:require("########");這個函數一般放在PHP文件的最前面,程序在執行前就

phparray_maparray_walk的使用對比

用戶自定義函數 ret callable int nbsp ron wid 自定義函數 urn 一、array_map() 1、array_map() 函數將用戶自定義函數作用到數組中的每個值上,並返回用戶自定義函數作用後的帶有新值的數組,若函數作用後無返回值,則

PHPrequireinclude的區別

PHPrequire()語句的功能與include()相類似,都是包括並運行指定文件。不同之處在於:對include()語句來說,在執行文件時每次都要進行讀取和評估;而對於require()來說,文件只處理一次(實際上,文件內容替換require()語句)。這就意味著如果可能執行多次的代碼,則使用requir

phparray_walk() array_map()兩個函數區別

.html als 就是 gpo map false AR HP www. 兩個函數的共性和區別: 1.傳入這兩個函數的 $value,就是數組中的單一個元素。 2.array_walk() 僅返回true或者false,array_map() 返回處理後的數組; 3.要得

phpcookiesession的區別與簡易用法

php cookie session 一、區別1、Cookie是完全保存在客戶端。當客戶端禁止cookie時將不能再使用;對服務端壓力較小;可以指定生存周期;安全性差。2、Session是存放在服務端的。但session id是存放在客戶端的cookie中的,但php的session存放方法是多樣

phpstaticself調用靜態方法區別

php由於看到框架裏面經常使用static::method() 於是稍微了解下static和self的區別廢話少說,直接上代碼class Father { public function __construct() { $this->init(); self::test(); }

PHPgetenv()$_SERVER的區別

地址 bsp color class $_server string ons functions ber PHP中getenv()和$_SERVER的用法區別: getenv 取得系統的環境變量,環境變量的格式為name=value。 語法: string getenv(s