如何在Atom中启用php-debug?

时间:2018-07-10 13:44:21

标签: php atom-editor xdebug

我已经在Atom及其IDE依赖项中安装了php-debug。当我设置断点时,调试视图打开,显示调试器未连接,但是当我尝试这样做时,似乎Atom无法识别我安装了php-debug软件包并询问我安装调试器。

我在某些地方阅读了软件包上的切换调试设置,但看不到该选项。

我正在使用Atom 1.27.0和PHP 7.2.4:

PHP 7.2.4 (cli) (built: Apr 12 2018 02:49:03) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
    with Zend OPcache v7.2.4, Copyright (c) 1999-2018, by Zend Technologies

我可以提供Xdebug配置,但问题似乎出在Atom本身上吗?有人遇到这个问题吗?

4 个答案:

答案 0 :(得分:1)

非常简单

  1. https://xdebug.org/download.php(适用于Apache的TS版本)下载xdebug
  2. 将其复制到php / ext目录
  3. 将php.ini中的文本复制到所有其他扩展名下方
  

zend_extension =“ D:/wamp/php/ext/php_xdebug-2.6.1-7.2-vc15-x86_64.dll”
      [xdebug]
      xdebug.remote_enable = 1
      xdebug.remote_host = 127.0.0.1
      xdebug.remote_connect_back = 1#对生产服务器不安全
      xdebug.remote_port = 9000
      xdebug.remote_handler = dbgp
      xdebug.remote_mode = req       xdebug.remote_autostart = true

重新启动Apache并在<?php phpinfo()?>中找到“ xdebug”字符串

  • 安装atom-debug_ui,php_debug
  • 软件包> PHP调试>切换
  • 应用断点并从浏览器运行PHP文件即可。
  

如果请求远程http://localhost/DIRECTORY_PATH_TO_PHP_FILE路径   而本地是PHP文件的目录路径。

答案 1 :(得分:0)

几天前我也收到了同样的信息……
断点被突然击中,由于浏览器的标签加载图标,我可以看到它,但是 Atom 用户界面上什么也没有发生。我所能做的就是单击停止或分离按钮,这导致xdebug结束会话并终止浏览器选项卡的加载。
使用PHP7.2.7,Xdebug 2.6(Docker php-fpm-alpine); Atom 1.26.1 x64


TLDR; PHP-debug 扩展程序无法处理我在配置面板中输入的“路径映射”值。


Atom 中打开开发控制台,使我发现错误,因为调试会话是在PHP Debug扩展中启动的。

Atom Debug (PHP Debug) Session initiated
logger.js? [sm]:43 Atom Debug (PHP Debug) [TypeError: Cannot read property 'endsWith' of undefined
    at Object.exports.generatePathMaps (/hom…]0: TypeError: Cannot read property 'endsWith' of undefined
    at Object.exports.generatePathMaps (/home/me/.atom/packages/php-debug/lib/helpers.js:80:34)
    at /home/me/.atom/packages/php-debug/lib/engines/dbgp/debugging-context.js:112:37
    …

这使我在Github repository上阅读并迅速弄清发生了什么。

我要做的就是更改我一开始错误填写的“路径映射”文本字段值。文本字段需要JSON字符串,如我们所见HERE,路径映射应该是由对象组成的可迭代/数组。它必须看起来像这样:

[{"localPath":"/home/me/projects/my-project","remotePath":"/var/www/my-project"}]

如果您有多个项目,请添加更多映射对象。请注意,此设置反映在〜/ .atom / .config.cson

此问题已解决,调试视图不再弹出,表示没有附加调试器。

答案 2 :(得分:0)

我也遇到了这个问题,使用Atom 1.53.0,PHP 7.3和XDebug 2.9.8。我可以从netstat得知XDebug正在连接到Atom,但是“ PHP调试”选项卡中没有任何活动,控制台或PHP控制台中也没有任何消息可以提示正在(或没有)发生的事情。

与Stphane不同,我没有定义任何路径映射。但是从他的回答中得到了提示,我单击了PHP Debug选项卡中的“ Path Maps”按钮。然后弹出了一系列错误对话框,我一次可以解决一个问题。

在我的情况下,所有错误均发生,因为我检出的项目中包含一些Unix符号链接,Windows不知道该符号链接如何解释。我通过删除符号链接并将它们指向的文件和目录的副本复制到它们的位置来解决它们。此后,“ PHP调试”窗格按预期工作,尽管调试器仍然显示“未安装调试器”。

答案 3 :(得分:0)

Atom告诉我调试器未附加,但我使它起作用。

我看过原子php-debug教程,但是遇到了 debugger未连接之类的问题。

我想分享该教程未包括的配置:

Xdebug.ini自动启动和idekey

首先是教程xdebug配置。将其配置为自动运行。

npm install --save-dev mocha

,但它会为每个请求运行调试器。所以您可以这样关闭它:

xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1    # Not safe for production servers
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true

之后,您必须通过将调试器附加到xdebug config来告诉调试器将调试发送到atom的api:

xdebug.remote_autostart=false

如果使用php-fpm,则除了重新启动http服务器之外,还必须重新加载它:

xdebug.idekey=xdebug-atom

具有正确idekey参数的浏览器扩展

在安装浏览器插件之后,该插件附加一个cookie来告诉xdebug使该请求可调试。

如果您的插件没有Atom配置,

在您的浏览器扩展首选项中进行以下操作:

sudo systemctl reload php-fpm.service

Atom 2插件启用和禁用atom-ide-ui-feature-debug

然后在Atom编辑器本身中:

安装 atom-debug-ui php-debug 之后。

从“编辑”->“首选项”->“包”

选择软件包 atom-ide-ui 软件包设置

部分启用功能-> 启用调试器

使其从未启用

像这样:

https://github.com/gwomacks/php-debug/issues/310#issuecomment-419751273

真正的破发点

现在从软件包->调试->切换调试器

另一个注意事项是您要在原子中设置断点。断点有2种类型。 大蓝点小蓝点

只有小型的调试器可用。

像这里建议的那样: https://learnwithdaniel.com/2019/06/atom-php-debugger/

使远程路径和本地路径相同

在浏览器设置请求之后。和Atom询问您的远程/本地路径。

使它们相同