vs.php中使用apache或IIS7進行外部調試
1、解決vs.php2.7在Windows7下調試apache出錯的問題
vs.php預設使用內部偵錯模式,由於vs.php2.7預設內建的內部調試的apache和php版本比較低,
在Windows7中啟動並執行時候會產生不相容的情況,具體表現為apache出錯退出,解決辦法:
改變安裝目錄中的apache.exe在相容模式下運行
我這邊是C:\Program Files\Jcx.Software\VS.Php\2008\2.7\Apache2\bin\apache.exe,相容模式
選擇是Windows2003
2、vs.php使用IIS7進行外部調試
很遺憾,我測試了很多次都沒有成功,截止到Xdebug 2.1.0beta2對IIS7支援不好,不管是採用ISAPI還是FASTCGI模式,
都沒辦法進行斷點調試。
附網上的方法,其實這種方法是沒辦法進行斷點調試的,只是看上去很美好罷了:
右擊項目,選擇“屬性”,在“屬性”頁裡選中Debug,更改裡面的Debug mode為“External mode”。
設定Debug engine為“XDebug”。最後再把Start Url改為IIS下設定的PHP項目首頁檔案,
如:“http://localhost:8080/vsphp/index.php”。(註:我在 IIS7下專門為PHP建立了一個連接埠為8080的網站)
3、vs.php中使用外部的apache進行調試
一般phper們都會有自己配置好的開發調試環境,那麼如何在vs.php中使用自己已經配置好的apache+php環境調試
php程式呢?如下:
(1)從官方網站http://xdebug.org/download.php下載最新的xdebug.dll(記得改成這個檔案名稱)放到你的php目錄的ext目錄下
根據你的php的thread-safe模式,選擇相應的版本,查看方法phpinfo()的Thread Safety的值,
我用的php是5.2.12,Thread Safety為enable,所以我下載的是 5.2 VC6 (32 bit)
(2)修改php.ini檔案,加入下面的代碼
zend_extension_ts=”D:\Server\server_core\php-apache\ext\php_xdebug.dll”
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
[XDebug]
xdebug.idekey = vsphp
xdebug.remote_enable = 1
xdebug.remote_port = 7870
xdebug.remote_autostart = 1
(3)在vs裡右擊項目,選擇“屬性”,在“屬性”頁裡選中Debug,更改裡面的Debug mode為“External mode”。
設定Debug engine為“XDebug”。最後再把Start Url改為你已經配置好的apache+php環境的項目首頁網址
(4)重啟apache伺服器
4、注意!xdebug和zendoptimizer不相容,所以在開啟xdebug調試的時候請務必在php.ini裡關閉zendoptimizer,如下前面加上分號即可
[Zend]
;zend_extension_manager.optimizer_ts=”D:\Server\server_core\zendoptimizer\lib\Optimizer-3.3.0″
;zend_extension_ts=”D:\Server\server_core\zendoptimizer\lib\ZendExtensionManager.dll”
如果xdebug生效的話,你可以在phpinfo()裡看到
with Xdebug v2.1.0beta2-dev, Copyright (c) 2002-2010, by Derick Rethans
等字樣。