本文目錄一覽:
- 1、Windows下的PHP安裝文件線程安全和非線程安全的區別
- 2、PHP線程安全與非線程安全的區別:如何選擇用哪一個
- 3、如何判斷PHP 是線程安全還是非線程安全的
- 4、php startup:win_serial:unable to initialize module…?如何解決這個問題?問題如下:
Windows下的PHP安裝文件線程安全和非線程安全的區別
非線程安全版本php適用在使用CGI以及fastCGI的web服務器上,如nginx,lighttpd以及IIS的CGI模式下
線程安全版本php適用在使用ISAPI或者module的web服務器上,如IIS的ISAPI模式或者apache module模式
安裝哪個版本看你使用的web服務器而定
PHP線程安全與非線程安全的區別:如何選擇用哪一個
首先,Linux下的PHP,沒有線程安全版和非線程安全版之分。從2000年10月20日發布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,直至5.2.1版本開始有Thread Safe(TS,線程安全)和None Thread Safe(NTS,非線程安全)之分。
因為,Linux/Unix系統採用的是多進程的工作方式,而Windows系統採用多線程的工作方式。即:Linux系統的任務調度基本單位是進程,Windows系統的任務調度基本單位是線程(本觀點來自自學與總結,不能保證百分之百正確)。
所以,在Windows系統的IIS下以CGI方式運行PHP會非常慢,這是由於CGI模式是建立在多進程的基礎之上的,而非多線程,且CGI模式對於每個HTTP請求都需要重新加載和卸載整個PHP環境,其消耗是巨大的。
於是,一般我們會把PHP配置成以ISAPI的方式來運行,ISAPI是多線程的方式,這樣就快多了。但存在一個問題,很多常用的PHP擴展是以 Linux/Unix的多進程思想來開發的,這些擴展在ISAPI的方式運行時就會出錯搞垮IIS。
為了兼顧IIS下PHP的效率和安全,微軟給出了FastCGI的解決方案。FastCGI可以讓PHP的進程重複利用,而不是每一個新的請求就重開一個進程。同時FastCGI也可以允許幾個進程同時執行。這樣既解決了CGI進程模式消耗太大的問題,又利用上了CGI進程模式不存在線程安全問題的優勢。
因此,如果是使用ISAPI的方式來運行PHP就必須用Thread Safe(TS,線程安全)的版本;而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS,非線程安全)的版本能夠更好的提高效率。
名詞解析:
IIS:Internet Information Services (互聯網信息服務),是由微軟公司提供的基於運行Microsoft Windows的互聯網基本服務
CGI:Common Gateway Interface (通用網關接口),是外部應用程序(CGI程序)與Web服務器之間的接口標準
ISAPI:Internet Server Application Programming Interface (互聯網應用程序接口),是為Microsoft所提的Internet server的API
FastCGI:CGI存在收到每個請求時都開闢一個進程等不足,FastCGI可以理解為是征對CGI的改進版
如何判斷PHP 是線程安全還是非線程安全的
判斷PHP 是線程安全還是非線程安全:
1.通過phpinfo(); 查看其中的 Thread Safety 項,這個項目就是查看是否是線程安全,如果是:enabled,一般來說應該是ts版,否則是nts版。
2.命令行:php -i|grep -i thread
結果:Thread Safety = disabled 【disabled表示非線程安全】
如果沒有grep命令(windows),那就一個個找吧。
php startup:win_serial:unable to initialize module…?如何解決這個問題?問題如下:
報錯的意思是:擴展編譯時的php版本與當前運行的php版本不一致。
你這裡的20121212表示PHP_5_5_X,但一個是TS(線程安全),另一個確實NTS(非線程安全)。
附:
#define PHP_5_0_X_API_NO 220040412
#define PHP_5_1_X_API_NO 220051025
#define PHP_5_2_X_API_NO 220060519
#define PHP_5_3_X_API_NO 220090626
#define PHP_5_4_X_API_NO 220100525
#define PHP_5_5_X_API_NO 220121212
#define PHP_5_6_X_API_NO 220131226
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/150792.html