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,非執行緒安全)的版本能夠更好的提高效率。
相關推薦
PHP中ts和nts版本
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版
php的TS和NTS的區別
server 使用 rdquo 保護 linu apach 獨立 ive 後臺 ts(Thread-Safety)即線程安全,多線程訪問時,采用了加鎖機制,當一個線程訪問該類的某個數據時,進行保護,其他線程不能進行訪問直到該線程讀取完,其他線程才可使用。不會出現數據不一致或
PHP中VC6、VC9、TS、NTS版本的區別與用法詳解
進行 系統資源 stc 詳解 ron 線程安全 info 啟動 win 1. VC6與VC9的區別: VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。 VC9版本是使用Visual Studio 20
PHP安裝包TS和NTS的區別
TS指Thread Safety,即執行緒安全,一般在IIS以ISAPI方式載入的時候選擇這個版本。 NTS即None-Thread Safe,一般以fast cgi方式執行的時候選擇這個版本,具有更好的效能。 ts(Thread-Safety)即執行緒安全,多執行緒訪問時,採用了加
PHP中include和require語句的區別
warning mar 處理 生成 區別 war 插入 php 通過 通過 include 或 require 語句,可以將 PHP 文件的內容插入另一個 PHP 文件(在服務器執行它之前)。 include 和 require 語句是相同的,除了錯誤處理方面:
php中session和cookie的使用及區別
網上商城 標識 禁止 bsp 身份驗證 main str 什麽 ets 1.cookie的使用 什麽是 Cookie? cookie 常用於識別用戶。cookie 是服務器留在用戶計算機中的小文件。每當相同的計算機通過瀏覽器請求頁面時,它同時會發送 cookie。通過
php學習之道:php中is_file和file_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
PHP中empty()和isset()的區別
tom 常量 def -1 最大 解析 如果 sse add 先說一下他們的共同點: 都可以判定一個變量是否為空; 都返回boolean類型,即true或false。 下面具體說一下他們用法之間的區別: isset()用來檢測變量是否設置,只能用於變量,因為
PHP中include和require的區別詳解
for in repl 這不 語句 沒有 16px targe size something 1、概要 require()語句的性能與include()相類似,都是包括並運行指定文件。不同之處在於:對include()語句來說,在執行文件時每次都要進行讀取和評估;
php中include和require的區別(整理)
服務 條件 工作方式 作用 就會 php程序 兩個 發生 ref require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文
說一下PHP中die()和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 中include和require的區別
require 文件的 沒有 流程控制 nbsp 執行 文件 php文件 函數 PHP中引用文件的方法有兩種:require和include 他們的用途是完全一樣的。 require:require("########");這個函數一般放在PHP文件的最前面,程序在執行前就
php中array_map和array_walk的使用對比
用戶自定義函數 ret callable int nbsp ron wid 自定義函數 urn 一、array_map() 1、array_map() 函數將用戶自定義函數作用到數組中的每個值上,並返回用戶自定義函數作用後的帶有新值的數組,若函數作用後無返回值,則
PHP中require和include的區別
PHPrequire()語句的功能與include()相類似,都是包括並運行指定文件。不同之處在於:對include()語句來說,在執行文件時每次都要進行讀取和評估;而對於require()來說,文件只處理一次(實際上,文件內容替換require()語句)。這就意味著如果可能執行多次的代碼,則使用requir
php中array_walk() 和 array_map()兩個函數區別
.html als 就是 gpo map false AR HP www. 兩個函數的共性和區別: 1.傳入這兩個函數的 $value,就是數組中的單一個元素。 2.array_walk() 僅返回true或者false,array_map() 返回處理後的數組; 3.要得
php中cookie和session的區別與簡易用法
php cookie session 一、區別1、Cookie是完全保存在客戶端。當客戶端禁止cookie時將不能再使用;對服務端壓力較小;可以指定生存周期;安全性差。2、Session是存放在服務端的。但session id是存放在客戶端的cookie中的,但php的session存放方法是多樣
php中static和self調用靜態方法區別
php由於看到框架裏面經常使用static::method() 於是稍微了解下static和self的區別廢話少說,直接上代碼class Father { public function __construct() { $this->init(); self::test(); }
PHP中getenv()和$_SERVER的區別
地址 bsp color class $_server string ons functions ber PHP中getenv()和$_SERVER的用法區別: getenv 取得系統的環境變量,環境變量的格式為name=value。 語法: string getenv(s