前言
很多人好奇網上關於php配置xdebug的教程那麼多,為什麼
我還要寫這篇文章?
因為網上的教程配置很亂,很多都是複製貼上,有些配置項根本不需要,也不解釋幹嘛的,而且不夠詳細。
本教程主要應用於Windows,Mac和Linux基本上同理。
配置xdebug擴充套件
只配置Debug,不配置profiler和trace,profiler和trace幹嘛的請百度。
因為大多數情況下是單使用者除錯,所以不需要
配置多使用者引數,
如:php.ini 檔案 xdebug.idekey 引數和 PhpStorm的Debug -> DBGp Proxy 。
所以php.ini大概配置如下:
zend_extension = php_xdebug.dll
xdebug.remote_enable = On
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9100
xdebug官網下載地址:https://xdebug.org/download.php
擴充套件一定要裝對,注意區分ts和nts版本,phpinfo()
檢視擴充套件是否成功。
推薦 phpEnv整合環境 ,自帶xdebug擴充套件和多版本php
設定PhpStorm
開啟PhpStorm,選單 File -> Settings ,然後找到 Languages & Frameworks -> PHP -> Debug
設定Debug port
為9100
為什麼不是9000?因為會和一些整合環境的php-cgi或者php-fpm埠衝突.
然後配置Languages & Frameworks -> PHP -> Servers
然後找到PhpStorm右上角電話圖示,開始監聽php debug的連結
開啟 phpEnv整合環境 的 TCP埠程式列表,有9100埠,說明監聽成功
觸發斷點除錯
在你需要的程式碼處打斷點,這是基礎和必須,就不多介紹了。
重點:觸發PhpStorm的debug方式主要有兩種
- GET、POST存在
XDEBUG_SESSION_START
引數或者cookie裡存在XDEBUG_SESSION
,單使用者除錯 值隨意。GET、POST會生成cookieXDEBUG_SESSION
,有效期為1個小時(可修改php.ini配置)。很多教程需要下載Xdebug helper
等瀏覽器外掛,原理就是請求裡附加cookie。 - php.ini 檔案
xdebug.remote_autostart
引數設定為 On 或者1,無需設定GET、POST、cookie。
個人推薦第 1 種
,教大家用一種更簡單的方式,不需要下載瀏覽器外掛。
找到PhpStorm右上角
然後點小甲蟲圖示
會開啟瀏覽器訪問你的url,並且攜帶GET引數XDEBUG_SESSION_START
,同時生成cookie XDEBUG_SESSION
,也就是說,下次(cookie有效期1小時)無需點選小甲蟲,瀏覽器直接輸入,如 www.a.com 或 www.a.com/chat/1/ 即可觸發除錯
寫原創教程不容易,轉載請註明來源,有問題請留言,謝謝!