使用场景
一台MAC上安装了phpstorm,虚拟机安装了对应的web程序,需要调试。
坑点,网上教程太多,不如看官网,需要按照xdebug版本来配置php.ini
https://www.jetbrains.com/help/phpstorm/2023.3/configuring-xdebug.html#-2xfn1k_72
安装Xdebug
坑点2、xdebug最新版本不支持32bit了,但是在历史版本还是可以支持32bit。
https://xdebug.org/download/historical
开启debug
具体php.ini配置文件如下:
如下配置适用于xdebug3,xdebug2相关配置不同,具体的改变可以参考网站:https://xdebug.org/docs/upgrade_guide#changed-xdebug.remote_port
[Xdebug]
zend_extension=C:/E-office_Server/php/ext/php_xdebug-3.1.6-7.4-vc15-nts.dll
xdebug.start_with_request=yesxdebug.mode=debugxdebug.client_port=9003 xdebug.client_host=10.37.129.2 # 你的phpstorm所在的主机ip
在自己网站根目录创建如下文件内容,可以用于辅助查看debug配置是否正确,但是好像挺鸡肋,就不贴代码了:https://gist.github.com/litzinger/8fd06ab6e5033b7ff8d8
开启监听:
然后在phpstorm中配置xdebug的debug port为9003
servers中配置网站的网页,然后建立对应的路径映射:也就是本机的路径和调试网站的对应路径
最后配置并开始调试
成功断点
疑问
按道理来讲,我之前在php.ini中配置了xdebug.idekey=“PHPSTORM”,应该需要在请求时添加一个参数,类似于:Cookie:XDEBUG_SESSION=PHPSTORM(或者在get请求中添加)。但是实际测试发现并不需要添加,没仔细研究过这个问题,大概是xdebug3的新功能xdebug.start_with_request参数导致的,我也是猜的,就不细究,能调就行。