我花了一整天的时间在这上面仍然无法让调试器在使用谷歌浏览器的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)
首先看一下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,其中它们涵盖了与我描述的相同的步骤,但在更多内容中详细方式。