php+phpstorm+xdebug配置

简介

因为博客是php的,所以无奈接触了php开发,虽然之前也学习过php语法。 搞开发是离不开debug。最初从网上找到相关教程配置成功了,后来升级php,浏览器崩了搞的debug不行,再配置怎么也不成功,准确的来说,网上的辣鸡贴子太多了,遇到点突发情况就行不通了。 自己研究了一下,于此记录。

详解

php配置

如下是我本地的完整配置

代码语言:javascript
复制
[Xdebug]
xdebug.mode=debug
zend_extension=D:/phpstudy_pro/Extensions/php/php8.0.2nts/ext/php_xdebug.dll
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.auto_trace=Off
xdebug.trace_output_dir=D:/phpstudy_pro/Extensions/php_log/php8.0.2nts.xdebug.trace
xdebug.profiler_enable=Off
xdebug.profiler_output_dir="D:\phpstudy_pro\Extensions\tmp\xdebug"
xdebug.remote_enable=On
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.client_port=9001
xdebug.remote_handler=dbgp
xdebug.idekey = PHPSTORM

PHP

其中xdebug.remote_enable,xdebug.remote_host,xdebug.client_port,xdebug.idekey的配置要注意一下。 xdebug.idekey的配置不要变,xdebug.remote_port,xdebug.client_port灵活变动,但是要与下文配置一致。 同时要注意端口不要被其他程序占用。

phpstorm配置

有两处,看下图 这个Debug port填写client_port

2023-05-12T02:24:42.png
2023-05-12T03:28:04.png

xdebug浏览器扩展配置

注意选择phpstorm后点击保存

2023-05-12T03:29:09.png

详细debug过程讲解

remote_port这个是服务器也就是应用程序的代理端口 client_port这个是客户端也就是浏览器的xdebug扩展或者是本地的phpstorm代理端口

debug流程:

  1. 浏览器访问网站,如上图的localhost:1111是网站地址
  2. php的xdebug监听到,会将请求数据传递到remote_port,如上图的9000,也就是服务器的9000端口。所以这个端口就相当于xdebug的端口
  3. xdebug然后会将监听到的数据发送到client_port,如上图的9001
  4. 本地的phpstorm会监听9001端口接受数据,至此完成整个数据传递

因为是本地跑项目本地debug,所以上述的9000,9001端口都是在本地计算机的,如果是远程debug,就相当于本地仅仅打开了9001·端口,服务器打开的是9000`端口

结语

本文乃我自学总结。如有php大佬发现有错误,烦请本页面留言指正!!!