如何使用phpstorm调试php

发布时间 2023-11-07 11:57:26作者: 猝死的路上

以前调试php都是使用 dump 或者 var_dump 来进行,非常不方便,现在可以使用 phpstorm 来进行动态调试,单步跟踪等,可以更快完成任务,
环境为本地是win10,ip地址为 192.168.0.114
服务器使用虚拟机 centos7 ,ip地址为 192.168.115.120

1.服务器安装 xdebug 扩展,如果服务器使用了宝塔,可以一键安装,非常方便

2.配置xdebug,

[xdebug]
zend_extension=/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
;xdebug3.0中用于代替之前的xdebug.remote_enable=On
xdebug.mode=debug

;xdebug3.0中用于代替之前的xdebug.remote_autostart,trigger对应之前的off,yes对应之前的on
xdebug.start_with_request=trigger

;xdebug3.0中用于代替之前的xdebug.remote_host
xdebug.client_host="192.168.0.114"

;xdebug3.0中用于代替之前的xdebug.remote_connect_back=On,它会自动从$_SERVER['HTTP_X_FORWARDED_FOR']
;或$_SERVER['REMOTE_ADDR']变量中获取ip,当然因为$_SERVER只有服务器模式有所以客户端模式是用不了的(可配置其它变量)
;如果找不到ip它会回退(fallback)到xdebug.client_host指定的ip
xdebug.discover_client_host=true

;xdebug3.0中用于代替之前的xdebug.remote_port
xdebug.client_port=9003

;固定填dbgp(因为目前只支持这个协议,也只有这个协议)
xdebug.remote_handler="dbgp"

;这是一个所有网上的文章都提到要设置但实际上却没啥用的参数(不信你可以注释掉试试,一切都正常)
xdebug.idekey="PHPSTORM"

3.配置phpstorm的 deployment

phpstorm -> tools -> Deployment -> Configuration
Connection标签页的配置

Mappings标签页的配置

第一行的映射是php程序的运行目录,一般为项目根目录的 www目录或者public目录,
第二行映射是php程序的根目录,为了方便本地和虚拟机服务器同步代码使用

这一步配置后记得把本地代码和服务器进行同步

4.配置 php debug servers

phpstorm -> file -> settings
选择 PHP -> Servers

5.配置 php debug 端口

phpstorm -> file -> settings
选择 PHP -> Debug

注意这里的debug port要和第一步配置的 xdebug.client_port=9003 要一致

6.验证是否配置成功

phpstorm -> file -> settings
选择 PHP -> Debug ,
这里面的第一个标签页为 Pre-configuration,总共有四个步骤
点击第三步的Start Listening,开启监听
然后点击第一步的 Validate,会弹出一个配置框,配置如下

这里的 Path to create validation script 一定是要选择 php程序的运行目录,不是根目录,不然很可能出现验证失败的情况

点击 Validate,如果成功的话

7.如果验证通过,现在就可以开始调试了

配置一个 PHP Remote Debug,配置如下

打开监听,然后在想要调试的具体代码打上断点,就可以调试了,对于开发来说非常的方便