1. 程式人生 > 程式設計 >解決windows上php xdebug 無法除錯的問題

解決windows上php xdebug 無法除錯的問題

有時候我們在使用php和nginx進行開發的時候,會出現這樣的情況,明明擴充套件已經安裝,但是就是無法除錯成功。這個時候我們就要耐心去分析問題產生的原因。

第一步:檢視php的版本比如是否是x64還是x86,看看xdebug是否啟用,可以通過phpinfo();來檢視擴充套件是否啟用。

第二步:使用php -m再次檢查xdebug是否安裝。

這個時候可能會遇到 xdebug must be loaded as zend extension 。這個是因為我們在php.ini中配置extension的時候需要改成zend_extension才行,也就zend_extension=php_xdebug.dll。

第三步:我們需要配置xebug的除錯語句,也就是需要在php.ini中填入下面的語句

[XDebug]

xdebug.remote_enable = 1

xdebug.remote_autostart = 1

xdebug.remote_port=9090

xdebug.remote_host=127.0.0.1

這裡有個非常重要的一個引數就是remote_port=9090,預設的話會是9000,但是如果填寫9000這個埠,可能就會導致你的php無法除錯,因為9000埠會被nginx佔用做代理。

如何檢視9000埠是否被佔用,可以在命令列輸入netstat -anp|findstr "9000"這個命令,如果有程式佔用9000埠,就會顯示出來,我們可以檢視到他的pid,接下來我們通過tasklist|findstr "2342"

(2343是剛才查到的pid)來找到是哪個程序佔用的這個埠,如果可以關閉的話,就關閉,不能關閉的話,我們就需要修改我們的埠號,比如筆者這裡修改為9090.

總結:程式設計就是一個不斷遇到問題,不斷解決問題的過程,可能同樣的程式碼,不同的環境就會導致結果不同,同樣的環境,不同的引數也會導致執行不同,我們需要做的就是不斷加深我們的理解,學會檢視錯誤日誌,學會分析程式執行邏輯,這樣才能克服重重困難,勇攀高峰。

這裡比如除錯的問題,我們首先就需要明白除錯的原理是什麼,它本質上是另起一個程序去監聽我們的除錯,它首先是php的一個擴充套件,php的好多功能都是通過擴充套件來實現的,比如常用的許多圖形庫,加密演算法等。當啟用擴充套件後,php就會和擴充套件互動,這裡的xdebug就是通過獲取到的php執行資訊來進行除錯的。

總結

以上所述是小編給大家介紹的解決windows上php xdebug 無法除錯的問題,希望對大家有所幫助,也非常感謝大家對我們網站的支援!