有時候我們在使用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 無法調試的問題,希望對大家有所幫助,也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:- Ubuntu下開啟php調試模式報錯信息解決辦法
- 如何運行/調試你的PHP代碼
- PHPStorm 2020.1 調試 Nodejs的多種方法詳解
- PhpStorm+xdebug+postman調試技巧分享
- php開發最強大的IDE編輯的phpstorm 2020.2配置Xdebug調試的詳細教程
- phpStudy vscode 搭建debug調試的教程詳解
- Vagrant(WSL)+PHPStorm+Xdebu 斷點調試環境搭建
- PhpStorm 如何優雅的調試Hyperf的方法步驟
- PHP如何打印跟蹤調試信息