简介
因为博客是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
xdebug浏览器扩展配置
注意选择phpstorm后点击保存
详细debug过程讲解
remote_port
这个是服务器也就是应用程序的代理端口
client_port
这个是客户端也就是浏览器的xdebug扩展或者是本地的phpstorm代理端口
debug流程:
- 浏览器访问网站,如上图的
localhost:1111
是网站地址 - php的xdebug监听到,会将请求数据传递到
remote_port
,如上图的9000
,也就是服务器的9000
端口。所以这个端口就相当于xdebug的端口 - xdebug然后会将监听到的数据发送到
client_port
,如上图的9001
- 本地的phpstorm会监听
9001
端口接受数据,至此完成整个数据传递
因为是本地跑项目本地debug,所以上述的9000
,9001
端口都是在本地计算机的,如果是远程debug,就相当于本地仅仅打开了9001·端口,服务器打开的是
9000`端口
结语
本文乃我自学总结。如有php大佬发现有错误,烦请本页面留言指正!!!