導航:首頁 > 編程語言 > phpnonthreadsafe

phpnonthreadsafe

發布時間:2022-11-26 03:46:46

php5 non-thread-safe和thread-safe的區別

先從字面意思上理解,None-Thread Safe就是非線程安全,在執行時不進行線程(thread)安全檢查;Thread Safe就是線程安全,執行時會進行線程(thread)安全檢查,以防止有新要求就啟動新線程的 CGI 執行方式耗盡系統資源。


來看PHP的兩種執行方式:ISAPI和FastCGI。FastCGI執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢
查的防護反而可以提高執行效率,所以,如果是以 FastCGI(無論搭配 IIS 6 或 IIS 7)執行 PHP ,都建議下載、執行
non-thread safe 的 PHP (PHP 的二進位檔有兩種包裝方式:msi 、zip ,請下載 zip
套件)。而線程安全檢查正是為ISAPI方式的PHP准備的,因為有許多php模塊都不是線程安全的,所以需要使用Thread Safe的PHP。

㈡ VC14 Apache2.4+PHP7.0 VC14 Non Thread Safe怎麼配置

新版本的php只有VC9和VC11
老版本的apache只能搭配VC6的PHP
VC9你需要安裝Visual C++ Redistributable for Visual Studio 2008 SP1 x86 or x64
VC11你需要安裝Visual C++ Redistributable for Visual Studio 2012 x86 or x64
只是使用了不同版本的編譯
Non Thread Safe:使用fastcgi+iis的用這個
Thread Safe:apache+php的用這個

㈢ 官網的PHP怎麼下載謝謝!

其中你所要安裝的就是install的那個包,兩個都可以,第二個更好一些,其他的兩種類型的包是一些插件,就是挺高你使用調試工具的效率,方便用戶的。

㈣ PHP5 non-thread-safe和thread-safe的區別

看你的PHP怎麼運行的。如果是apache+php mole的話,你需要用threadsafe版本,因為是多線程共享一個php模塊。如果是fast cgi的話就可以用non thtlreadsafe的版本了,因為每個線程里都有獨立的php模塊。

㈤ PHP non-thread-safe和thread-safe這兩個版本的區別

PHP5 non-thread-safe和thread-safe的區別
從PHP5.2.10版本開始(現在有PHP5.2.10和5.3兩個版本),有None-Thread Safe與Thread Safe兩種版本的可供選擇,這兩種版本有何不同,作為使用者來說又應該如何選擇呢?
先從字面意思上理解,None-Thread Safe就是非線程安全,在執行時不進行線程(thread)安全檢查;
Thread Safe就是線程安全,執行時會進行線程(thread)安全檢查,以防止有新要求就啟動新線程的 CGI 執行方式耗盡系統資源。
再來看PHP的兩種執行方式:ISAPI和FastCGI。
FastCGI執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,所以,如果是以 FastCGI(搭配IIS)執行 PHP ,都建議下載執行 non-thread safe 的 PHP (PHP 的二進位檔有兩種包裝方式:msi 、zip ,請下載 zip 套件)。
而線程安全檢查正是為ISAPI方式的PHP准備的,因為有許多php模塊都不是線程安全的,所以需要使用Thread Safe的PHP(搭配apache)。
如果你還搞不清楚,那麼只需知道你是php+apache還是php+iis組合
non-thread-safe 非 線程安全與IIS搭配環境
thread-safe 線程安全 與apache搭配環境

另外php還有VC6 VC9版本區分
VC6和VC9一個支持apache一個支持IIS
VC9用在apache上也沒問題,如果你用iis就必須用vc9的,如果你用apache vc6和vc9都可以用。

㈥ windows 下選擇php版本 是選Non Thread Safe還是Thread Safe

如果是使用ISAPI的方式來運行PHP就必須用Thread Safe(線程安全)的版本;而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS,非線程安全)的版本能夠更好的提高效率。 個人感覺這個很不靠譜 我現在用的ts版本的php

㈦ win2008下如何快速安裝PHP,並做好安全設置

在Windows Server 2008下配置PHP環境特別的快,只需要滑鼠點點就可以了。

1,下載PHP5.2系列版本,目前5.2系列比5.3系列兼容性更好。其中又分為Non Thread Safe和Thread Safe版本,如果要用FastCGI模式運行PHP,就選擇Non Thread Safe版本,如果要用ISAPI模式運行PHP,就選擇Thread Safe版本。

2,開啟IIS7:點擊「開始」菜單上面的「伺服器管理器」==> 角色==> 添加角色==> 點下一步==> 選上II7.5 ==> 點下一步==> 一定選上CGI ==> 開啟安裝IIS

3,雙擊下載下來的PHP安裝包,開始安裝PHP,一直點next就能完成安裝,
勾選的模塊:EXIF,GD2,Mcrypt,Mhash,Ming,MySQL,OpenSSL,SOAP,Sockets,XML-RPC,XSL,ZIP

再點next == > install 即可安裝完成


4,檢查PHP有沒有安裝成功,並且查看php.ini的存放路徑

打開 控制面板==> 管理工具==> Internet 信息服務(IIS)管理器 ,再隨意創建一個站點,按下圖進行查看:


再到該站點的目錄下,創建一個文本文件,改名成index.php,內容是:
<?php phpinfo();>


再訪問這個站點,即可顯示PHPINFO頁面,而且要記下php.ini的存放路徑,如下圖:


5,PHP安全設置(重要)

打開剛才記下的php.ini的存放路徑。編輯這個文件:

在最低下加入這兩行:
disable_functions = exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl,popen,show_source
cgi.fix_pathinfo=0

然後重啟IIS讓配置生效

㈧ php報錯 Non-abstract method LineyardModelList::addLineYard() must contain body,怎麼解決呢

函數的參數行是不用加分號的,你仔細看。

functionaddLineYard($args)//這不能有分號
{
...
}

㈨ Windows下的PHP安裝文件線程安全和非線程安全的區別

從2000年10月20日發布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,這是由於與Linux/Unix系統是採用
多進程的工作方式不同的是Windows系統是採用多線程的工作方式。如果在IIS下以CGI方式運行PHP會非常慢,這是由於CGI模式是建立在多進程
的基礎之上的,而非多線程。一般我們會把PHP配置成以ISAPI的方式來運行,ISAPI是多線程的方式,這樣就快多了。但存在一個問題,很多常用的
PHP擴展是以Linux/Unix的多進程思想來開發的,這些擴展在ISAPI的方式運行時就會出錯搞垮IIS。而用線程安全版本的話頂多隻是搞跨某個
線程,而不會影響到整個IIS的安全。
當然在IIS下CGI模式才是
PHP運行的最安全方式,但CGI模式對於每個HTTP請求都需要重新載入和卸載整個PHP環境,其消耗是巨大的。為了兼顧IIS下PHP的效率和安全,
有人給出了FastCGI的解決方案。FastCGI可以讓PHP的進程重復利用而不是每一個新的請求就重開一個進程。同時FastCGI也可以允許幾個
進程同時執行。這樣既解決了CGI進程模式消耗太大的問題,又利用上了CGI進程模式不存在線程安全問題的優勢。
因此,如果是使用ISAPI的方式來運行PHP就必須用Thread
Safe(線程安全)的版本;而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None
Thread
Safe(NTS,非線程安全)的版本能夠更好的提高效率。
因此,如果是使用ISAPI的方式來運行PHP就必須用Thread
Safe(線程安全)的版本;而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None
Thread
Safe(NTS,非線程安全)的版本能夠更好的提高效率。
附:德問相關問題摘錄
下載PHP安裝文件時,我看到有兩種不同的二進制文件,像是非線程安全(Non
Thread
Safe)和線程安全(Thread
Safe),比如該頁面所列:http://windows.php.net/download/。這個是什麼意思,之間有什麼區別?
這個主要是針對web
server
而言,在windows環境下,如果你使用的web
server
是apchae
或者
iis
7以下版本,則應該選擇線程安全的安裝文件,而如果你使用Fast-cgi模式時,可以選擇非線程安全,因為
web
sever
本身能保證線程安全。
當然還有二進制文件編譯時所使用的編譯器:vc9
(vs系列)
vc6(gcc)
如樓上所言,是針對web
server的,部分web
server在處理應用請求的時候是用多線程而非多進程的方式處理,線程方式因為涉及到共享寄存器和內存,所以很容易出錯,這個時候程序就需要花一些額外的經歷去處理寄存器中的數據一致性,即保證線程安全。
所以是否採用線程安全主要看你的web
server所採用的PHP請求處理方式,如果是多線程處理,那麼請選擇線程安全的,否則選擇非線程安全的,如樓上所說Fast-cgi方式可選擇非線程安全的

㈩ Windows下的PHP安裝文件線程安全和非線程安全的區別

Windows下的PHP版本分兩種:線程安全版本與非線程安全版本。

要論兩者的區別,詳細論說起來比較麻煩,從使用者的角度,記住什麼時候用哪種版本的區別就可以了吧:

1、windows + IIS + FastCGI :使用非線程安全版本。

解釋:

以FastCGI方式安裝PHP時,PHP擁有獨立的進程,並且FastCGI是單一線程的,不存在多個線程之間可能引發的相互干擾(這種干擾通常都是由於全局變數和靜態變數導致的)。由於省去了線程安全的檢查,因此使用FastCGI方式比ISAPI方式的效率更高一些。

2、windows + IIS + ISAPI :使用線程安全版本。

解釋:

PHP以ISAPI方式安裝時,PHP沒有獨立的進程,而是作為DLL被IIS載入運行的,即是依附於Web伺服器進程的。當Web伺服器運行在多線程模式下(IIS正是這種情況),PHP自然也就運行在多線程模式下。只要是在多線程模式下運行,就可能存在線程安全問題,因此應選擇PHP的線程安全版本。

3、windows + Apache + PHP(模塊) :使用線程安全版本。

解釋:

如果你要在Apache中以模塊方式安裝PHP,則你應該使用PHP的線程安全的版本。原因是當PHP作為Apache的模塊安裝時,PHP沒有獨立的進程,而是作為模塊以DLL的形式被載入到Apache中的,是隨Apache的啟動而啟動的,而Windows下的Apache為多線程工作模式,因此PHP自然也就運行在多線程模式下。因此,這種情況下應使用PHP的線程安全版本。

4、windows + Apache + PHP(ISAPI) :使用線程安全版本。

解釋:

由於以ISAPI方式來安裝PHP時,PHP也沒有獨立的進程,也是作為模塊被載入到Apache中的,因此,同樣也需要使用PHP的線程安全版本。

一般不建議在Apache中以ISAPI方式來安裝PHP,原因是到目前為止,Apache通過mod_isapi.so模塊來實現的ISAPI功能並不完整,並未完整實現微軟對ISAPI所制定的全部規范。

5、windows + Apache + PHP(FastCGI) :使用非線程安全版本。

解釋:

如果你要在Apache中以FastCGI方式使用PHP,則同在IIS中使用FastCGI的PHP的情況一樣,你應該使用PHP的非線程安全的版本。原因是在Apache中以FastCGI方式安裝PHP時,PHP擁有獨立的進程,並且FastCGI是單一線程的,故應使用PHP的非線程安全版本以提高性能。

以上資料總結相關資料,分條明細,供選擇。

閱讀全文

與phpnonthreadsafe相關的資料

熱點內容
程序員培訓機構感覺很坑 瀏覽:160
編譯器腳本意思 瀏覽:326
apachelinux配置代理 瀏覽:294
程序員的命運會怎樣 瀏覽:663
看逗逗App怎麼樣 瀏覽:445
新英朗壓縮比 瀏覽:297
代購幫app的錢怎麼提現 瀏覽:338
android藍牙可見 瀏覽:360
python游戲編程入門pdf 瀏覽:701
深金融app是干什麼的 瀏覽:611
程序員公園倒立 瀏覽:384
工作應酬吃辣片緩解壓力嗎 瀏覽:427
premierepdf教程 瀏覽:433
pic單片機原理及應用 瀏覽:255
解壓小玩具吐舌頭 瀏覽:711
有道雲伺服器崩潰 瀏覽:890
相冊加密文件怎麼做 瀏覽:213
食指中節骨折演算法 瀏覽:262
工業40pdf 瀏覽:978
錄像機存儲伺服器怎麼實現連接 瀏覽:938