PHPStorm、Xdebug 和 Google Chrome 调试

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 > Preferences > Languages and Frameworks > PHP。在“Interpreter:”所在行的同一行上单击扩展图标(一个方框)。输入php可执行文件路径。点击刷新框以显示调试器版本。点击确定并应用。

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

8) 然后我在浏览器中重新加载网页,但没有任何断点。我甚至尝试使用 xdebug 谷歌浏览器扩展程序,也不起作用。然而,在他们的视频中,它可以运行:

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

我错过了什么?

根据下面的答案,这是 xdebug 扩展的 phpinfo 信息:

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,但我记得需要在选项中使用“服务器”层进行配置,而不是语言和框架。 - STLMikey
1个回答

4

首先在浏览器中查看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,其中涵盖了我描述的相同步骤,但更加详细。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接