運行xdebug須要客戶端IDE(phpstorm)、遠程服務器配合,首先是客戶端配置好端口,發送debug請求,請求會經過瀏覽器或者IDE的http請求,攜帶特定的參數發送到服務端,服務端收到請求後,發現這是一個xdebug請求,則與IDE創建dpgp鏈接,當遇到斷點時候,返回調試信息給IDEphp
https://xdebug.org/download.phphtml
zend_extension=xdebug.so xdebug.idekey=PHPSTORM xdebug.remote_connect_back = 1 //若是開啓此,將忽略下面的 xdebug.remote_host 的參數 xdebug.remote_host=192.168.x.x //注意這裏是,客戶端的ip<即IDE的機器的ip,不是你的web server> xdebug.remote_enable=on xdebug.remote_port = 9001 //注意這裏是,客戶端的端口<即IDE的機器的ip,不是你的web server> xdebug.remote_handler = dbgp xdebug.auto_trace = 1 xdebug.remote_log = /tmp/xdebug.log
debug session 的工具的目的是設置一個cookie, 讓每次發送數據的時候都會攜帶這個 cookie, 從而識別監聽.git
6.1) 安裝工具
https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaocgithub
6.2) 點擊圖標設置web
6.3) 已經設置了cookie, Key 是 XDEBUG_SESSION
, 值是 PHPSTORM
chrome
上面的模式有個缺點,插件是針對於一個標籤頁
快捷鍵:
Mac: Ctrl+Shift+X Windows:Alt+Shift+Xsegmentfault
咱們這裏建立的調試頁面的類型是PHP Web Page
, 服務器選擇的是剛纔已經創建好的服務器瀏覽器
自動生成:XDEBUG_SESSION_START
http://example.com/?XDEBUG_SESSION_START=13608服務器
if (oSession.host == "xxxx") { var sCookie = oSession.oRequest["Cookie"] + ';XDEBUG_SESSION=PHPSTORM;'; oSession.oRequest.headers.Add("Cookie", sCookie); }
export XDEBUG_CONFIG="idekey=PHPSTORM" php myscript.php
https://derickrethans.nl/debugging-with-multiple-users.html
插件下載地址:http://code.activestate.com/komodo/remotedebugging/微信
第一次運行的時候能夠經過 phpstorm 自帶的工具來檢查配置的兼容性.Run > Web Server Debug Validation
校驗代碼
:https://gist.github.com/han8g...
左側
綠色三角形 : Resume Program
,表示將繼續執行,直到下一個中斷點中止。
紅色方形 : Stop
,表示中斷當前程序調試。
上方
第一個圖形示 : Step Over
,跳過當前函數。
第二個圖形示 : Step Into
,進入當前函數內部的程序(至關於觀察程序一步一步執行)。
第三個圖形示 : Force Step Into
,強制進入當前函數內部的程序。
第四個圖形示 : Step Out
,跳出當前函數內部的程式。
第五個圖形示 : Run to Cursor
,定位到當前光標。