Xdebug配置
在Web应用运行环境中,打开php.ini文件(例如你的Web程序跑在本地,就修改本地的php.ini,如果你的程序跑在内网机172.16.17.8,那你就ssh到这台机器上,修改这台机器的php.ini)。在文件尾部添加Xdebug配置:
[Xdebug] xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_connect_back=1 xdebug.remote_port=9001 xdebug.remote_autostart=1 xdebug.idekey=phpstorm
用到的最多的配置就是以上几个,对于这几个的配置解释如下:
·remote_enable
决定xdebug是否开启远程调试模式,在使用Remote Debugging的时候必须打开;
·remote_host vs remote_connect_back
由于这两个配置项有紧密联系,所以放在一起讲。
(1)首先,如果你指针对单个调试用户,比如就你自己调试,你可以将remote_host设成你的Web程序运行的ip,remote_connect_back的值不设置或者设置为0(你不设置默认也是0)。这样Xdebug每次调试的时候会固定连接remote_host指定的ip;
(2)但是如果你支持的是多人调试,明显设置一个remote_host是没办法的。这个时候就可以用remote_connect_back=1来设置。当remote_connect_back设置为1的时候,xdebug会根据请求来的ip自动回连,进行调试,从而支持多人调试。同时,这个值设为1的话会使remote_host的设置无效;
(3)一般情况下,推荐使用remote_connect_back=1的配置
·remote_port
显然这是设置调试端口的,这里的端口需要与PHPStorm中配置的调试端口一致,需要注意的时候不可用和别的端口起冲突,不然会无法进入调试,我们这里设置成9001(因为fpm默认的端口是9000,为了防止冲突,这里设置成9001);
·remote_autostart
默认状态下,触发调试需要在url中增加get参数:XDEBUG_SESSION_START={xdebug.idekey},如果想自动启动调试,可以将这个值设为1,所以推荐将这个值设为1;
·idekey
可以理解为调试的令牌,需要运行Web程序的PHP中配置的令牌和PHPStorm中配置的令牌一致,才可触发调试;
相关推荐:《PhpStorm使用教程》
配置完成之后,千万不要忘记重启fpm,然后打印phpinfo(在Web程序入口处输入phpinfo();exit;然后访问Web程序,就可以查看php的配置相关信息 )查看配置是否生效;
1、查看Xdebug是否安装,以及版本信息
2、查看xdebug参数信息(Ctrl+f 搜索xdebug)
打开PHPStorm,点击菜单PhpStorm->Preferences,进入配置对话框。点击Languages & Frameworks -> PHP -> Xdebug,进入Debug配置页面,将Xdebug下面的Debug Port设置成9001,然后点击OK:
这里设置好了,可以测试一下:
点击工具栏上的远程调试按钮:
使用lsof -i tcp:9001命令查看PHPStorm的调试Client是否启动:
配置PHP Server。PhpStorm->Preferences -> Languages & Frameworks -> PHP -> Servers,点击+号,在右侧输入Web程序的域名和端口。根据是否是远程调试,配置Use,配置好了点击OK。Use Path Mappings要特别注意:
如果你是调试本机的Web程序,这里不需要设置;
如果你是调试远程的Web程序,需要勾选,然后在下面内容的左侧选中项目文件夹,再在右侧中输入远程Web程序的根目录,按下Enter;
配置Remote Debug。从菜单栏Run->Edit Configuations进入运行环境的配置窗口,点击窗口左上角的+号,选择PHP Remote Debug,在右侧的Servers里面选择我们刚刚配置好的local-r2s,然后输入ide key(PHPSTORM),点击OK。
至此,调试的配置就完成了。
现在打开工具栏上的远程调试按钮(如果你之前测试时打开了,就点击它关闭,再点击一次打开就可以了)。然后在代码中设置断点。没有意外的话,就可以进入断点了。
以上是phpstorm怎么调试php web项目的详细内容。更多信息请关注PHP中文网其他相关文章!