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



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

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

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

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

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

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

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

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

最新更新