本教程主要應用於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/ 即可觸發調試