【问题标题】:Run Xdebug on Laravel 8 with Sail & PhpStorm on Ubuntu在 Ubuntu 上使用 Sail 和 PhpStorm 在 Laravel 8 上运行 Xdebug
【发布时间】:2021-11-02 22:29:30
【问题描述】:

我有 Ubuntu 18.04 和全新安装的 Laravel 8。我想将 Xdebug 与 Sail 一起使用。我按照instructions如下:

  1. SAIL_XDEBUG_MODE=develop,debug 添加到环境中
  2. 运行sail build --no-cachesail up -d
  3. 运行 docker inspect -f {{range.NetworkSettings.Networks}}{{.Gateway}}{{end}} <container-name> 以获取我的 docker 容器的 IP
  4. 已将 SAIL_XDEBUG_CONFIG="client_host=172.19.2.1" 添加到 env(来自步骤 3 的 IP)

接下来我继续instruction from PhpStorm for debugging

  1. 已通过sail php -v 验证 Xdebug 处于活动状态。
  2. 在 PhpStorm 中启用侦听调试连接
  3. 设置断点并启用Break at first line in PHP scripts
  4. 为 Chrome 安装了 Xdebug Helper 浏览器扩展
  5. 单击扩展中的调试(错误现在为绿色)
  6. 刷新页面,页面构建速度很慢,但完全加载(不应该是这种情况,它应该挂在断点上)

如果我切换到 PhpStorm,则不会弹出对话框。不过按照说明,应该有一些说明。

在浏览器中重新加载页面并返回 PhpStorm。在传入 Connection From 对话框,选择路径映射,以便 PhpStorm 可以将 web 服务器上的远程文件映射到本地 项目中的文件。

Hera 是我的调试设置:

我错过了什么?

【问题讨论】:

  • 1) 我建议启用 Xdebug 日志并尝试调试。然后检查日志——它必须说什么(如果它试图调试;如果它尝试那么它试图连接到哪里) 2)检查/显示你的实时 Xdebug 配置(xdebug_info() 输出......或phpinfo() 的 Xdebug 部分)——查看在实际执行期间实际设置了哪些选项。
  • 一般情况下:如果 PhpStorm 中没有弹出对话框 .. 并且调试服务器条目尚未创建 .. 那么它可能是:1)PhpStorm 没有监听/不在正确的端口上(使用netstat 或类似工具检查)。 2) 错误的 IP:端口 3) 可能的防火墙问题...我自己没有使用 Sail:你能打开 SSH 会话吗?如果可以 -- 尝试将传出 telnet 连接回 IDE(在 Xdebug 端口上;当 IDE 正在侦听时) -- 看看 telnet 是否能够连接)。
  • @LazyOne 感谢您的建议。我尝试将日志路径设置为 docker 容器中的路径并授予文件 777 权限,但我得到了这个:Xdebug: [Log Files] File '/www/var/html/storage/logs/debug.log' could not be opened. 。我通过使用sail debug migrate 触发了这个,这是一种通过命令行启动xdebug 的方法。然后我看到了,我的ip是错误的。每次我重新启动容器时,IP (X) 都会增加172.19.X.1。所以我现在做的是,我最后一个ip是172.19.5.1,所以我只是在env t`172.19.6.1中更改了ip并重启了容器。现在可以了。
  • 但我想肯定有更好的方法,然后必须在每次重新启动容器时猜测 IP?
  • 好吧...试试这个(通常适用于 Linux 上的 Docker):使用 host.docker.internal 而不是特定的 IP,并在您的撰写文件中使用 extra_hosts 应用解决方法——检查 github.com/docker/for-linux/issues/264#issuecomment-759737542 和其他 cmets。

标签: laravel ubuntu phpstorm xdebug laravel-sail


【解决方案1】:

感谢@LazyOne 的帮助,我得到了它的工作。我只需要跳过说明中的第 3 步和第 4 步。

或者换句话说,我必须遵循https://laravel.com/docs/8.x/sail#debugging-with-xdebug 的说明,但忽略Linux Host IP Configuration 部分,尽管我在Linux 上。看起来这部分不适合 Ubuntu?

【讨论】:

    猜你喜欢
    • 2021-04-12
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    相关资源
    最近更新 更多