phpstorm 使用 Xdebug 除錯程式碼

zmxyzmxy1234發表於2020-06-09

用過Java、C#等靜態語言的同學除錯程式碼經常是打個斷點,然後輕鬆除錯,而PHPer除錯程式碼時經常是

echo $a;exit;

非常的不方便,有的同學有時候打完斷點沒刪就給commit上去了,這就造成了很多困擾,有沒有辦法更優雅的除錯呢?那當然有的,這裡用到一個PHP模組xdebug,xdebug安裝教程,使用它進行PHP程式碼除錯,能有效減少工作量和BUG除錯時間,特別是在某些複雜的程式中,光靠看都無法找出問題

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,某些細節方面就忽略了,有興趣的同學可以去網上查詢更詳細的配置和說明(當然沒興趣)

  1. 斷點除錯時,PHP指令碼執行超時後Apache自動斷開連線,然後返回一個500錯誤

    在apache的http.conf檔案加入

    FcgidIOTimeout 6000
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章