PHPStorm,Xdebug和谷歌Chrome调试

Don*_*ato 10 php phpstorm

我花了一整天的时间在这上面仍然无法让调试器在使用谷歌浏览器的PHPStorm中工作.以下是我采取的步骤:

1)安装后找到xdebug扩展:

locate xdebug.so
# => /usr/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

4)转到PHPStorm>首选项>语言和框架> PHP.单击与"Interpreter:"相同的行上的展开图标(方框).输入php可执行文件路径.单击刷新框以弹出调试器版本.单击确定并应用.

在此输入图像描述

5)切换PHPStorm中的"开始侦听PHP调试连接"按钮.

在此输入图像描述

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

在此输入图像描述

7)转到此网址https://www.jetbrains.com/phpstorm/marklets/.选择Xdebug下的Generate.将"启动调试器","停止调试器"和"调试此页面"拖到Google Chrome中的书签栏中.

在此输入图像描述

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

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
Run Code Online (Sandbox Code Playgroud)

Vla*_*lik 4

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

<?php
    phpinfo(); 
    exit;
?>
Run Code Online (Sandbox Code Playgroud)

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

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

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

[Xdebug]
xdebug.remote_enable = 1
Run Code Online (Sandbox Code Playgroud)

另外,我建议阅读“Jet Brains”团队的“XDebug 安装指南”:https://confluence.jetbrains.com/display/PhpStorm/Xdebug+Installation+Guide,其中它们涵盖了与我描述的相同的步骤,但在更多内容中详细方式。