3

我正在尝试使用 Sublime Text 2 设置 Xdebug 以在我的本地计算机上调试 PHP,但绝对无处可去。我正在使用 PHP 5.4 运行 MAMP。我在 php.ini 的末尾输入了这个:

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_autostart=1

Xdebug.so 扩展随 MAMP 一起提供,我已验证它位于 php.ini 文件中指定的位置。我可以在我的 PHP 信息中看到 Xdebug 信息。

在 Sublime Text 2 中,我已经安装了这个包并将我的项目中的设置更改为:

{
    "folders":
    [
        {
            "path": "/Applications/MAMP/htdocs"
        }
    ],

    "settings": {
        "xdebug": { "url": "http://localhost" }
    }
}

我可以按 SHIFT 和 F8 来调出 Sublime Text 2 中的插件菜单,并且可以添加或删除断点(代码行左侧出现一个灰点)。当我点击“开始调试”时,它会打开一个浏览器,并在 url 上附加了“?XDEBUG_SESSION_START=sublime.xdebug”字符串。但是我的断点什么也没做。

我已经尝试添加xdebug_break();到我的代码中以查看是否会停止程序,但它不会。浏览器和IDE似乎根本没有连接......

有任何想法吗?

4

2 回答 2

11

首先,Kindari 的 xdebug 插件并不是你会高兴的。他把这个插件作为一种试验,在编写它的同时学习 sublime api,所以它充满了问题、硬编码的变量和东西。我最终放弃了它并卸载了那个插件,它只是没有用(但它有效)。恕我直言,最大的缺陷之一是无法显示超过 1 级的数组变量。几个月前他在github上发帖说他要从头开始重写它,从那以后它似乎被废弃了,但我仍然在拼命等待新版本的出现,我什至在考虑学习python并自己编写它。

好吧,如果你不想尝试,首先确保 Xdebug 工作正常,通过使用其他 Xdebug 客户端进行尝试。如果 Xdebug 在其他地方工作,请确保您安装了 python2.6,因为它不适用于 2.7。如果您运行的是 ubuntu 12.04,python2.6 不在存储库中,因此插件自述文件中有 Ubuntu 12.04 的解决方法:

  1. 下载 [http://packages.ubuntu.com/lucid/python2.6][python 2.6]。
  2. 提取它:

    dpkg-deb -x python2.6_2.6.5-1ubuntu6_i386.deb python2.6
    
  3. 将解压后的 usr/lib/python2.6 文件夹复制到 {Sublime Text 目录}/lib (=/usr/lib/sublime-text-2/lib/)

记住两件事:首先,有一个文件 /usr/lib/sublime-text-2/lib/python26.zip,所以不要删除这个文件。其次,在您提取的那个 .deb 中,里面有 usr/lib/python2.6,这就是您要复制的内容,而不是整个 python2.6 目录。所以,如果你不在那个解压的 .deb 之外,

cp -r python2.6/usr/lib/python2.6 /usr/lib/sublime-text-2/lib

可能会完成这项工作。我不太确定,如果你应该复制那个 python2.6/usr/lib/python2.6 文件夹或者只是它的内容,我确实复制了两个并且它没有搞砸任何事情。

于 2012-12-03T23:16:22.633 回答
0

你安装的是python 2x 版吗?尝试安装python,或者设置xdebug.remote_enable=1

于 2012-12-02T04:06:41.783 回答