【问题标题】:Mac Catalina Xdebug session won't startMac Catalina Xdebug 会话无法启动
【发布时间】:2020-09-08 15:06:42
【问题描述】:

我刚刚通过关注the Xdebug part of this guide 在 Mac Catalina 10.15.4 上安装了 Xdebug。一切顺利,我在安装 Xdebug 时没有遇到任何错误,但由于某种原因,Xdebug 会话在通过 PhpStorm 启动时永远不会启动。

我遵循的步骤是

  1. sphp 7.3
  2. pecl uninstall -r xdebug
  3. pecl install xdebug
  4. 从我的usr/local/etc/php/7.3/php.ini 顶部删除了zend_extension="xdebug.so"
  5. 使用所需的 Xdebug 配置创建文件 /usr/local/etc/php/7.3/conf.d/ext-xdebug.ini

/usr/local/etc/php/7.3/conf.d/ext-xdebug.ini的内容

[xdebug]
zend_extension="xdebug.so"
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000

phpinfo();的内容

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.file_link_format no value    no value
xdebug.filename_format  no value    no value
xdebug.force_display_errors Off Off
xdebug.force_error_reporting    0   0
xdebug.gc_stats_enable  Off Off
xdebug.gc_stats_output_dir  /var/tmp/   /var/tmp/
xdebug.gc_stats_output_name gcstats.%p  gcstats.%p
xdebug.halt_level   0   0
xdebug.idekey   no value    no value
xdebug.max_nesting_level    256 256
xdebug.max_stack_frames -1  -1
xdebug.overload_var_dump    2   2
xdebug.profiler_append  Off Off
xdebug.profiler_enable  Off Off
xdebug.profiler_enable_trigger  Off Off
xdebug.profiler_enable_trigger_value    no value    no value
xdebug.profiler_output_dir  /var/tmp/   /var/tmp/
xdebug.profiler_output_name cachegrind.out.%p   cachegrind.out.%p
xdebug.remote_addr_header   no value    no value
xdebug.remote_autostart On  On
xdebug.remote_connect_back  Off Off
xdebug.remote_cookie_expire_time    3600    3600
xdebug.remote_enable    On  On
xdebug.remote_host  localhost   localhost
xdebug.remote_log   no value    no value
xdebug.remote_log_level 7   7
xdebug.remote_mode  req req
xdebug.remote_port  9000    9000
xdebug.remote_timeout   200 200
xdebug.scream   Off Off
xdebug.show_error_trace 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_enable_trigger_value   no value    no value
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

还有php -v

Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.20, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.20, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.9.6, Copyright (c) 2002-2020, by Derick Rethans

【问题讨论】:

  • 1) 启用xdebug.remote_log 并收集和共享此类不成功调试会话的日志:它会告诉它尝试连接的位置(如果它确实连接)以及响应是什么。 2) 请记住,在 Linux 和 Mac 上,CLI 和 Web 服务器使用不同的 php 设置(不同的配置文件)是很常见的。因此,请确保您使用与尝试调试相同的方式捕获 phpinfo 输出。
  • 非常小的旁注:您有“remote_autostart On”但您的 .ini 没有这样的行。这表明复制+粘贴中缺少一行 .. 或者您可能有多个提供 xdebug 设置的位置(默认情况下该选项为关闭)
  • 在阅读了一些无法让 Xdebug 工作的人的教程后,我拼命地将xdebug.remote_autostart=1 添加到/usr/local/etc/php/7.3/conf.d/ext-xdebug.ini。这应该可以解释缺少的行。

标签: phpstorm xdebug php-7.3


【解决方案1】:

我已通过将xdebug.remote_port=9001 添加到 ext-xdebug.ini 来解决此问题,因为执行命令lsof -nP -i4TCP:9000 | grep LISTEN 表明php-fm 也在侦听此端口。请注意,您还需要将 PhpStorm 中的 Xdebug 调试端口更改为 9001 或您选择的任何值。

【讨论】:

    猜你喜欢
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多