为Sublime3配置Xdebug(PHP)路径_映射和PHP.ini
我正在尝试将Xdebug配置为使用Sublime Text 3,但无法在上下文、监视或堆栈选项卡中显示任何内容,例如设置断点并单击开始调试(启动浏览器)。浏览器打开index.php文件,并在url后面附加为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\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:连接到客户端。:-)代码>