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中配置的令牌一致,才可触发调试;