【问题标题】:VSCode - XDebug loads then is not loadedVSCode - XDebug 加载然后不加载
【发布时间】:2019-09-19 13:09:19
【问题描述】:

我正在尝试在 Windows 上将 XDebug 与 PHP 和 VS Code 一起使用。我已经成功安装了 XDebug,因为它显示在 phpinfo() 页面中。

当我尝试在 VS Code 上使用 XDebug 时,我收到此错误:

DEBUG     Checking PHPLS_ALLOW_XDEBUG

DEBUG     The xdebug extension is loaded (2.7.1)

DEBUG     Process restarting (PHPLS_ALLOW_XDEBUG=internal|2.7.1|0|*|*)
DEBUG     Running C:\Users\***\Documents\Applications\php-7.3.4-nts-Win32-VC15-x64\php.exe -n -c C:\Users\***\AppData\Local\Temp\AF9E.tmp c:\Users\***\.vscode\extensions\felixfbecker.php-intellisense-2.3.10\vendor\felixfbecker\language-server\bin\php-language-server.php --tcp=127.0.0.1:50124 --memory-limit=4095M

DEBUG     Checking PHPLS_ALLOW_XDEBUG

DEBUG     Restarted (64 ms). The xdebug extension is not loaded

[Info  - 11:04:12 AM] 1 files total
[Info  - 11:04:12 AM] Indexing project for definitions and static references
Parsing file:///c:/xampp/htdocs/blank/blank.php
[Info  - 11:04:12 AM] Indexing project for dynamic references
[Info  - 11:04:12 AM] 0 Packages
[Info  - 11:04:12 AM] All 1 PHP files parsed in 0 seconds. 148 MiB allocated.

【问题讨论】:

  • 大胆猜测:您的系统上可能安装了多个 PHP ... 然后使用自己的/不同的 php.ini(默认情况下,它取自 PHP 可执行文件所在的同一文件夹)。因此,C:\Users\***\Documents\Applications\php-7.3.4-nts-Win32-VC15-x64\php.exe 使用的 php.ini 可能没有安装 Xdebug。 (顺便说一句:为什么这样奇怪的路径(这表明它带有一些其他软件)..为什么不手动安装 PHP 一次并使用它?)
  • 我确实有多个安装,每个都安装了通过 phpinfo 验证的 XDebug。我通过 XAMPP 安装了 PHP,并通过 PHP 的网站下载了 PHP。我从 PHP 的网站下载了 PHP,因为在 code.visualstudio.com/docs/languages/php 上它说“提示:使用 XAMPP?安装完整版本的 PHP 以获得开发库。”你认为我应该从 PHP 的网站上删除 PHP 吗?
  • 我的主要观点是:尝试使用相同的 PHP 安装 .. 因为首先它检查并发现 Xdebug 已加载(根据您的日志),然后它必须执行另一个 PHP .. Xdebug 不是现在...所以检查它使用的 PHP 并指向同一个位置(对不起,这里不是 VSCode 用户,所以不能给你更精确的说明可以改变什么和在哪里)

标签: php visual-studio-code xdebug


【解决方案1】:

我也遇到了这个问题,查看提供的配置(在上面的原始示例中,它是 C:\Users\***\AppData\Local\Temp\AF9E.tmp),我发现 zend_extension 行已被注释掉。

即。它在 .tmp 文件中显示如下:

;zend_extension=php_xdebug-2.7.2-7.3-vc15-nts-x86_64.dll

分号是评论字符。

一个小实验表明它是根据文件名自行注释掉的。我将 DLL 重命名为 totallynotphpdebgr272.dll 并将其设置为 php.ini 中的 zend_extension。更改之后,它不再在生成的 .tmp 文件中注释该行,并且我能够在 vscode 中成功开始调试 php。

【讨论】:

    猜你喜欢
    • 2014-09-08
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多