【问题标题】:XDebug only writes to log for CLI scripts and not browser requestsXDebug 只为 CLI 脚本而不是浏览器请求写入日志
【发布时间】:2021-05-26 20:20:22
【问题描述】:

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

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

为什么 CLI 与浏览器对 XDebug 的日志记录有所不同?如何为浏览器请求启用它?

【问题讨论】:

    标签: docker xdebug xdebug-3


    【解决方案1】:

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

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

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

    也有可能网络服务器用户甚至无法访问/path/to 部分,您可以通过ls -l /path/to/ 进行检查,并验证网络服务器用户是否是访问掩码的一部分。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 1970-01-01
      • 2015-01-20
      • 2014-10-19
      • 1970-01-01
      • 2015-02-23
      相关资源
      最近更新 更多