为Sublime3配置Xdebug(PHP)路径_映射和PHP.ini

为Sublime3配置Xdebug(PHP)路径_映射和PHP.ini,php,sublimetext3,xdebug,Php,Sublimetext3,Xdebug,我正在尝试将Xdebug配置为使用Sublime Text 3,但无法在上下文、监视或堆栈选项卡中显示任何内容,例如设置断点并单击开始调试(启动浏览器)。浏览器打开index.php文件,并在url后面附加?XDEBUG\u SESSION\u START=sublime.XDEBUG,但当到达断点时,代码的执行不会停止 我还尝试将xdebug\u break()添加到index.php中,但没有效果 据我所知,在.sublime项目文件中指定路径映射似乎是最有可能的解决方案。缔约国指出: 路径

我正在尝试将Xdebug配置为使用Sublime Text 3,但无法在上下文、监视或堆栈选项卡中显示任何内容,例如设置断点并单击开始调试(启动浏览器)。浏览器打开index.php文件,并在url后面附加
?XDEBUG\u SESSION\u START=sublime.XDEBUG
,但当到达断点时,代码的执行不会停止

我还尝试将
xdebug\u break()
添加到index.php中,但没有效果

据我所知,在
.sublime项目
文件中指定
路径映射
似乎是最有可能的解决方案。缔约国指出:

路径映射

要进行远程调试以解析文件位置,需要配置路径映射,其中服务器路径为键,本地路径为值

我在Windows 10上使用IIS,因此应用程序的文件存储在
C:\inetpub\wwwroot\
中,并且主页的url是
http://localhost/index.php
我假设分别是服务器路径和本地路径,因此
.sublime项目
文件如下所示:

{
    "folders":
    [
        {
            "path": "."
        }
    ],
    "settings": {
        "xdebug": {
            "url": "http://localhost/index.php",
            "path_mapping" : {"C:\\inetpub\\wwwroot\\" : "http://localhost/index.php"}
        }
    }
}
{
    "folders":
    [
        {
            "path": "."
        }
    ],
    "settings": {
        "xdebug": {
            "url": "http://localhost/index.php"
        }
    }
}
这是正确的吗?如果是,我的php.ini文件配置是否正确

[ExtensionList]
.
.
.
zend_extension = "C:\Program Files (x86)\PHP\php-5.6.30-nts-Win32-VC11-x86\ext\php_xdebug-2.5.1-5.6-vc11-nts.dll"

[XDEBUG]
xdebug.default_enable=1
xdebug.remote_autostart=0
xdebug.remote_connect_back=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.remote_host=localhost

路径映射和php.ini设置都不正确

根据@LazyOne的评论,删除了
.sublime项目
文件中不正确的
路径映射
,因此现在看起来如下所示:

{
    "folders":
    [
        {
            "path": "."
        }
    ],
    "settings": {
        "xdebug": {
            "url": "http://localhost/index.php",
            "path_mapping" : {"C:\\inetpub\\wwwroot\\" : "http://localhost/index.php"}
        }
    }
}
{
    "folders":
    [
        {
            "path": "."
        }
    ],
    "settings": {
        "xdebug": {
            "url": "http://localhost/index.php"
        }
    }
}
然后将
xdebug.remote\u log=“C:\Windows\Temp\xdebug\remote.log”
添加到php.ini中,并检查日志显示:

I: Remote address found, connecting to ::1:9000.
E: Time-out connecting to client. :-(
搜索此错误导致@Axel对此的回答,并基于此,将php.ini中的
xdebug.remote\u connect\u back=1
更改为
xdebug.remote\u connect\u back=0


断点开始工作,上下文、监视和堆栈选项卡开始显示到达断点时的相关数据。

路径映射和php.ini设置都不正确

根据@LazyOne的评论,删除了
.sublime项目
文件中不正确的
路径映射
,因此现在看起来如下所示:

{
    "folders":
    [
        {
            "path": "."
        }
    ],
    "settings": {
        "xdebug": {
            "url": "http://localhost/index.php",
            "path_mapping" : {"C:\\inetpub\\wwwroot\\" : "http://localhost/index.php"}
        }
    }
}
{
    "folders":
    [
        {
            "path": "."
        }
    ],
    "settings": {
        "xdebug": {
            "url": "http://localhost/index.php"
        }
    }
}
然后将
xdebug.remote\u log=“C:\Windows\Temp\xdebug\remote.log”
添加到php.ini中,并检查日志显示:

I: Remote address found, connecting to ::1:9000.
E: Time-out connecting to client. :-(
搜索此错误导致@Axel对此的回答,并基于此,将php.ini中的
xdebug.remote\u connect\u back=1
更改为
xdebug.remote\u connect\u back=0


断点开始工作,上下文、监视和堆栈选项卡开始显示到达断点时的相关数据。

“我假设分别是服务器路径和本地路径”否——它与URL无关。当远程文件路径与本地文件路径不匹配时,需要使用路径映射,例如在本地计算机网站的
索引上。php
位于
/var/www/
中,但在远程文件中,它位于
/var/www/html/site name/
中。收集xdebug日志以查看发生了什么。非常感谢@LazyOne问题现在在您的评论的帮助下得到了解决。“我假设分别是服务器路径和本地路径”不,这与URL无关。当远程文件路径与本地文件路径不匹配时,需要使用路径映射,例如在本地计算机网站的
索引上。php
位于
/var/www/
中,但在远程文件中,它位于
/var/www/html/site name/
中。收集xdebug日志以查看发生了什么。非常感谢@LazyOne问题在您的评论的帮助下得到了解决。因此问题在于Sublime中的xdebug支持不支持IPv6。。那么一定是IPv4?成功的会话在xdebug日志中看起来如何?我的意思是--它可以连接到哪个IP:端口?
localhost:9000
日志显示
I:连接到配置的地址/port:localhost:9000。
然后
I:连接到客户端。:-)
所以问题是Sublime中的xdebug支持不支持IPv6。。那么一定是IPv4?成功的会话在xdebug日志中看起来如何?我的意思是--它可以连接到哪个IP:端口?
localhost:9000
日志显示
I:连接到配置的地址/port:localhost:9000。
然后
I:连接到客户端。:-)