0

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

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

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

4

1 回答 1

2

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

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

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

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

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

于 2021-05-27T08:19:50.117 回答