PHP XDebug Usage

生命周期

手动或者自动开启调试 session ,终止于手动或程序自动退出.

Trigger By Parameters

  • Add parameter to url or form , eg. XDEBUG_SESSION_START=sessName
  • Cookie add the parameter XDEBUG_SESSION=sessName

Auto Start (Recommend)

  • Add the config in php.ini xdebug.remote_autostart=1

连接 IDE 的两种方式

自动获取客户端 IP 连接

通过 $_SERVER HTTP_X_FORWARDED_FOR和REMOTE_ADDR or REMOTE_ADDR 拿到客户端的 IP
通过 IDE 暴露出来的 Port 进行通讯
发起 request 的 machine 必须和 IDE 在同一台 machine
zend_extension = xdebug.so 
xdebug.remote_enable = 1 
xdebug.remote_autostart = 1 
xdebug.remote_mode = req 
xdebug.remote_connect_back = 1 
xdebug.remote_port = 9001 
xdebug.remote_handler = dbgp 
xdebug.idekey = "PHPSTORM" 
xdebug.remote_log = /var/www/html/ais/docker/log/xdebug.log

指定 IP 连接

优先级 : 方式 1 优先于方式 2
适合于开发机 IP 不变 (docker or vagrant)
zend_extension=xdebug.so 
xdebug.remote_enable = 1 
xdebug.remote_autostart = 1
xdebug.remote_mode = req 
xdebug.remote_connect_back = 0 
xdebug.remote_host = 192.168.35.103  
xdebug.remote_port = 9001
xdebug.remote_handler = dbgp 
xdebug.idekey = "PHPSTORM" 
xdebug.remote_log = /var/www/html/ais/docker/log/xdebug.log

检查 xdebug 端口联通情况

curl -v telnet://192.168.33.1:9001
Last modification:December 14th, 2020 at 04:29 pm
小编很用心去写文章的,大家伙们给点支持呗。