代码之家  ›  专栏  ›  技术社区  ›  Phantom Watson

XDebug仅写入CLI脚本的日志,而不写入浏览器请求

  •  0
  • Phantom Watson  · 技术社区  · 4 年前

    我试图诊断为什么PhpStorm在一段时间后似乎失去了与Windows上Docker容器中运行的XDebug 3的连接,所以我有 xdebug.log=/path/to/xdebug.log 在一个 .ini 我正在查看那个日志文件。

    XDebug成功地对浏览器请求和CLI脚本进行了分步调试,但是 它仅在执行CLI脚本时写入日志 。如果正在处理浏览器请求,则日志在整个步骤调试过程中保持不变。

    为什么CLI和浏览器会对XDebug的日志记录产生影响?我如何为浏览器请求启用它?

    0 回复  |  直到 4 年前
        1
  •  3
  •   Derick    4 年前

    CLI上的PHP和运行在web服务器上的PHP可能有不同的INI文件。您可以通过使用来检查使用了哪些 php --ini 在CLI上,或使用 phpinfo() 在浏览器中运行的脚本中。

    如果它们使用相同的INI文件,则检查 xdebug.log 是正确的。使用 php -m xdebug | grep log 在CLI上,或再次 phpinfo() 在一个脚本中。

    如果这两者都正确,那么也可能是权限问题。如果 /path/to/xdebug.log 已由运行CLI命令的用户(可能是您)创建,则Web服务器用户可能也没有写入权限。您可以通过以下方式检查日志文件的所有者和访问权限 ls -l /path/to/xdebug .

    Web服务器用户甚至可能无法访问 /path/to 部分,您可以查看 ls -l /path/to/ ,并验证Web服务器用户是否是访问掩码的一部分。

    如果这是您的个人计算机(而不是任何共享或生产中的计算机),您可以修复 /路径/to/xdebug.log 具有 chmod 0666 /path/to/xdebug.log 这应该赋予所有用户对该文件的写访问权限。

    推荐文章