【问题标题】:PHPStorm, Xdebug and Google Chrome debuggingPHPStorm、Xdebug 和 Google Chrome 调试
【发布时间】:2015-06-24 22:32:12
【问题描述】:

我花了一整天的时间,仍然无法让调试器在 PHPStorm 中与 Google Chrome 一起工作。这些是我目前采取的步骤:

1) 安装后找到xdebug扩展:

locate xdebug.so
# => /usr/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so

2) 在 php.ini 文件中插入扩展名:

php –ini
# => Configuration File (php.ini) Path: /etc
# => Loaded Configuration File:         /etc/php.ini
sudo vim /etc/php.ini
zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so

3) 确认 xdebug 工作正常:

php -v
PHP 5.4.30 (cli) (built: Jul 29 2014 23:43:29) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

4) 转到 PHPStorm > 首选项 > 语言和框架 > PHP。单击与“解释器:”位于同一行的展开图标(方框)。输入php可执行路径。点击刷新框,弹出调试器版本。点击确定并申请。

5) 在 PHPStorm 中切换“开始侦听 PHP 调试连接”按钮。

6) 在源代码中设置断点。

7) 转到此网址https://www.jetbrains.com/phpstorm/marklets/。在 Xdebug 下选择生成。将“启动调试器”、“停止调试器”和“调试此页面”拖到 Google Chrome 的书签栏中。

8) 然后我在浏览器中重新加载网页,完全没有中断。我什至尝试使用 xdebug google chrome 扩展程序,但这也不起作用。然而,在他们的视频中,它奏效了:

https://www.jetbrains.com/phpstorm/documentation/phpstorm-video-tutorials.jsp#10

我在这里错过了什么?

根据下面的答案,这就是 phpinfo 对 xdebug 扩展的作用:

xdebug

xdebug support  enabled
Version 2.2.3
IDE Key no value

Supported protocols Revision
DBGp - Common DeBuGger Protocol $Revision: 1.145 $

Directive   Local Value Master Value
xdebug.auto_trace   Off Off
xdebug.cli_color    0   0
xdebug.collect_assignments  Off Off
xdebug.collect_includes On  On
xdebug.collect_params   0   0
xdebug.collect_return   Off Off
xdebug.collect_vars Off Off
xdebug.coverage_enable  On  On
xdebug.default_enable   On  On
xdebug.dump.COOKIE  no value    no value
xdebug.dump.ENV no value    no value
xdebug.dump.FILES   no value    no value
xdebug.dump.GET no value    no value
xdebug.dump.POST    no value    no value
xdebug.dump.REQUEST no value    no value
xdebug.dump.SERVER  no value    no value
xdebug.dump.SESSION no value    no value
xdebug.dump_globals On  On
xdebug.dump_once    On  On
xdebug.dump_undefined   Off Off
xdebug.extended_info    On  On
xdebug.file_link_format no value    no value
xdebug.idekey   no value    no value
xdebug.max_nesting_level    100 100
xdebug.overload_var_dump    On  On
xdebug.profiler_aggregate   Off Off
xdebug.profiler_append  Off Off
xdebug.profiler_enable  Off Off
xdebug.profiler_enable_trigger  Off Off
xdebug.profiler_output_dir  /var/tmp/   /var/tmp/
xdebug.profiler_output_name cachegrind.out.%p   cachegrind.out.%p
xdebug.remote_autostart Off Off
xdebug.remote_connect_back  Off Off
xdebug.remote_cookie_expire_time    3600    3600
xdebug.remote_enable    Off Off
xdebug.remote_handler   dbgp    dbgp
xdebug.remote_host  localhost   localhost
xdebug.remote_log   no value    no value
xdebug.remote_mode  req req
xdebug.remote_port  9000    9000
xdebug.scream   Off Off
xdebug.show_exception_trace Off Off
xdebug.show_local_vars  Off Off
xdebug.show_mem_delta   Off Off
xdebug.trace_enable_trigger Off Off
xdebug.trace_format 0   0
xdebug.trace_options    0   0
xdebug.trace_output_dir /var/tmp/   /var/tmp/
xdebug.trace_output_name    trace.%c    trace.%c
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth    3   3

【问题讨论】:

  • 我现在这台计算机上没有 PHPStorm,但我似乎记得必须使用选项中的“服务器”层来配置它,而不是语言和框架

标签: php phpstorm


【解决方案1】:

首先看一下浏览器中phpinfo()的输出:

<?php
    phpinfo(); 
    exit;
?>

有时人们会编辑错误的php.ini 版本(例如为 PHP CLI 指定,而不是为 Web 服务器指定)——我在实践中多次遇到这种情况。该文件的位置取决于您的系统,要了解更多信息,您可以阅读这篇文章:Dude, where's my php.ini?

然后您需要检查 XDebug 实例的指定值。如果您需要更改某些内容,您应该打开 php.ini 并在那里找到 [Xdebug] 部分。

在作者的案例中,我们发现问题出在xdebug.remote_enable。所以解决方法是:

[Xdebug]
xdebug.remote_enable = 1

我还建议阅读“Jet Brains”团队的“XDebug 安装指南”:https://confluence.jetbrains.com/display/PhpStorm/Xdebug+Installation+Guide,其中包含与我描述的相同步骤,但方式更详细。

【讨论】:

    猜你喜欢
    • 2014-08-21
    • 2017-07-20
    • 1970-01-01
    • 2014-01-16
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2011-11-06
    相关资源
    最近更新 更多