标签归档:homestead

成为高级 PHPer 第一步 – xDebug 使用

原理简介

  1. PHPStorm 中集成了一个遵循 bgdp 的 xDebug 插件,该插件启动后会开启一个 9000 的端口监听远程服务器发过来的 debug 信息。
  2. 点击 PHPStorm 中的蜘蛛样图标开启调试,浏览器会向 web 服务器发送一个带有 XDEBUG_SESSION_START 参数的请求,服务器收到这个请求之后交给后端的 PHP 进行处理。
  3. PHP 看到这个请求是带了 XDEBUG_SESSION_START 参数,会通过 xDebug 会向来源 ip 客户端的 9000 端口(默认是 9000 端口)发送一个 debug 请求,然后客户端的 9000 端口响应这个请求,那么 debug 就开始了。
    1. `xdebug.remote_connect_back = 0` 时,向 xdebug.remote_host:xdebug.remote_port 发送请求
    2. `xdebug.remote_connect_back = 1` 时,向 http 请求来源 ip 发送 debug 请求。
  4. 接着 PHP 开始一步步的执行代码,每执行一行会由 xDebug 过滤一遍,过滤时会向客户端发送代码的执行情况,等待客户端的进一步决策。
  5. 客户端收到 xDebug 发送的代码执行情况,就可以将信息展示给开发者。

homestead + phpstorm + xdebug

  1. pecl install 安装 xdebug 扩展
  2. 配置 xdebug
zend_extension=/usr/lib/php/20170718/xdebug.so
# 支持远程调试
xdebug.remote_enable = 1
# 不绑定客户端
xdebug.remote_connect_back = 1
# 远程调试接口
xdebug.remote_port = 9000
xdebug.max_nesting_level = 512
  1. 配置 PHPStorm
    1. 在设置中搜索 PHP,配置 php 解释器,选择 From vagrant … ,选中 Homestead 的文件夹,会自动解析
    2. 配置 DBGp Proxy
      1. IDE key: PHPSTORM
      2. Port: 9000
  2. 配置 Servers
    1. 名称
    2. Host:本地域名
    3. 目录映射:本地文件夹对应的 homestead 文件夹
  3. 运行/调试配置 中,添加 PHP Web Page 配置,使用刚才配置的 Server
  4. 点击 运行 -> start listening for php debug connections 开始监听调试
  5. 点击小蜘蛛运行调试

postman 使用

phpstorm 启动 ‘start listening for php debug connections’ 后,postman 发送请求带上 XDEBUG_SESSION=PHPSTORM 的 cookie ,即可调试

参考

  1. https://learnku.com/collections/6408