# 用過Java、C#等靜態語言的同學調試程式碼經常是打個斷點,然後輕鬆調試,而PHPer調試程式碼時經常是 echo $a;exit; 非常的不方便,有的同學有時候打完斷點沒刪就給commit上去了,這就造成了很多困擾,有沒有辦法更優雅的調試呢?那當然有的,這裡用到一個PHP模組xdebug,xdebug安裝教程,使用它進行PHP程式碼調試,能有效減少工作量和BUG調試時間,特別是在某些複雜的程式中,光靠看都無法找出問題 相關學習推薦:phpstrom使用教學 Xdebug是一個開放原始碼程式碼的PHP程式偵錯器(即一個Debug工具),可以用來追蹤,調試和分析PHP程式的運行狀況。 如果是整合環境,例如phpstudy,就不需要自己安裝了,直接環境->PHP->設定(PHP版本號搞混了) 這裡設定下埠號,憑自己喜好就行,我設定了9001 查看phpinfo,搜尋下,有xdebug模組就行了 接下來打開phpstorm,ctrl alt s打開設定 #來到debug設置,將連接埠改成前面你設定的連接埠號碼(其他預設即可,當然也可以開啟,看不懂英文可以翻譯一下) 在點開Servers,點號新建一個,名字隨意,Host填自己要Debug的網域(例如localhost,我這裡填了一個虛擬域名),端口號預設80即可 #然後右上角有一個Edit Configurations,點擊打開 ##點擊加號,加入一個PHP Web Page #name隨意,Server選剛才你設定的,startUrl是啟動的介面位址,如果我要debug一個下單的接口,於是我把他填寫了進去,然後點擊箭頭所指向的Validate #第一個選項是調試本地的,第二個是調試遠端的,我這裡遠端不講了,免得搞暈你們 第一個輸入框填寫自己的專案目錄,因為我這個是tinkphp框架,我把他指向了專案目錄的public目錄 第二個填寫自己的域名,這裡編輯器自動幫忙填寫了 點擊Validate按鈕,phpstorm會幫忙偵測設定是否正確,如果有錯請依照指示修改 #最後點選右上角的這隻臭蟲,會自動開啟瀏覽器進行偵錯,臭蟲旁邊的電話機如果變綠了表示正在監聽9001埠 #這時phpstorm會自動開啟debug控制台,點選箭頭自動下一步,左邊點選紅點可以打斷點 如果想用postman呢? 把這個參數拿過來 把這對key-vlue加入postman的參數內,點擊send自動開啟調試(postman會一直處於發送狀態中,直至斷點調試完畢) 我寫的教程希望以最簡短的步驟讓讀者能運行起xdebug,某些細節方面就忽略了,有興趣的同學可以去網上查找更詳細的配置和說明(當然沒興趣) #debug控制台簡單說明 左邊可以打斷點,當程式碼執行到斷點時會停止 這個按鈕點一下,會執行一行程式碼,但遇到函數會直接執行整個函數 這個按鈕也是執行一行程式碼,可以進入函數內部執行 跳到下一个断点 第一个页面可以很清晰的查看所有变量 第二个页面可以打印变量,甚至可以执行对象函数方法(贼有用) 第三个页面是查看输出 问题总结 断点调试时,PHP脚本执行超时后Apache自动断开连接,然后返回一个500错误 在apache的http.conf文件加入 FcgidIOTimeout 600