PHP的(Thread Safe與Non Thread Safe)


在安裝xdebug到時候你會有有TS和NTS版本的選擇,在以前還有VC6和VC9的版本。如果你沒有根據你目前的服務器的狀況選擇對應的版本的話,那么xdebug是安裝不成功的。

一、如何選擇 php5.3 的 VC9 版本和 VC6 版本
VC6 版本是使用 Visual Studio 6 編譯器編譯的,如果你的 PHP 是用 Apache 來架設的,那你就選擇 VC6 版本。

VC9 版本是使用 Visual Studio 2008 編譯器編譯的,如果你的 PHP 是用 IIS 來架設的,那你就選擇 VC9 版本。

二、如何選擇 PHP5.3 的 Thread Safe 和 Non Thread Safe 版本

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

再來看 PHP 的兩種執行方式:ISAPI 和 FastCGI。

ISAPI 執行方式是以 DLL 動態庫的形式使用,可以在被用戶請求后執行,在處理完一個用戶請求后不會馬上消失,所以需要進行線程安全檢查,這樣來提高程序的執行效率,所以如果是以 ISAPI 來執行 PHP,建議選擇 Thread Safe 版本;

而 FastCGI 執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,所以,如果是以 FastCGI 來執行 PHP,建議選擇 Non Thread Safe 版本。

這樣就可以根據自己的使用情況選擇所需的php版本下載了。

注:ISAPI 和 FastCGI無需在php中設置,是webserver的操作。

通過phpinfo();查看當前php是什么版本,Thread Safety,這個參數是查看是否是線程安全。

 

我的PHP是5.2的運行在apache上,通過phpinfo發現thread safety是enabled的,所以我選擇了VC6非線程安全的版本安裝。在windows下的php.ini增加以下配置即可

[XDebug]
zend_extension_ts="D:/Program Files/php-5.2.13-Win32/ext/php_xdebug-2.2.3-5.2-vc9.dll"
;是否開啟自動跟蹤
xdebug.auto_trace = On
;是否開啟異常跟蹤
xdebug.show_exception_trace = On
;是否開啟遠程調試自動啟動
xdebug.remote_autostart = On
;是否開啟遠程調試
xdebug.remote_enable = On
;允許調試的客戶端IP
xdebug.remote_host=127.0.0.1
;遠程調試的端口(默認9000)
xdebug.remote_port=9000
;調試插件dbgp
xdebug.remote_handler=dbgp
;是否收集變量
xdebug.collect_vars = On
;是否收集返回值
xdebug.collect_return = On
;是否收集參數
xdebug.collect_params = On
;跟蹤輸出路徑
xdebug.trace_output_dir="d:\xdebug\trace_output_dir"
;是否開啟調試內容
xdebug.profiler_enable=On
;調試輸出路徑
xdebug.profiler_output_dir="d:\xdebug\profiler_output_dir"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM