【问题标题】:Xdebug 3 config fileXdebug 3 配置文件
【发布时间】:2021-04-13 13:45:22
【问题描述】:

我需要有关调试 Xdebug 3 配置的工作步骤的帮助。我在带有 nginx 的 Ubuntu 服务器 20.04 上运行 Xdebug 3.0.1,安装在 Oracle VirtualBox 上。我的 IDE 是 PhpStorm。

一切正常(SSH 隧道、SFTP、端口转发),连接已建立,但步骤调试未开始。

我当前的 Xdebug 3 配置:

zend_extension=xdebug.so
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
XDEBUG_SESSION=PHPSTORM
xdebug.start_with_request=yes

任何人在工作步骤调试配置中配置了 Xdebug 3 并且可以帮助我吗??

phpinfo() 从浏览器中捕获的 Xdebug 部分 - 很长

xdebug 版本 3.0.1

Feature Enabled/Disabled    Docs
Development Aids    ✘ disabled  ????
Coverage    ✘ disabled  ????
GC Stats    ✘ disabled  ????
Profiler    ✘ disabled  ????
Step Debugger   ✔ enabled   ????
Tracing ✘ disabled  ????
Debugger    enabled
IDE Key no value
Directive   Local Value Master Value
xdebug.auto_trace   This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.auto_trace" This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.auto_trace"
xdebug.cli_color    0   0
xdebug.client_discovery_header  no value    no value
xdebug.client_host  127.0.0.1   127.0.0.1
xdebug.client_port  9003    9003
xdebug.cloud_id no value    no value
xdebug.collect_assignments  Off Off
xdebug.collect_includes This setting has been removed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#removed-"xdebug.collect_includes"   This setting has been removed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#removed-"xdebug.collect_includes"
xdebug.collect_params   This setting has been removed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#removed-"xdebug.collect_params" This setting has been removed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#removed-"xdebug.collect_params"
xdebug.collect_return   Off Off
xdebug.collect_vars This setting has been removed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#removed-"xdebug.collect_vars"   This setting has been removed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#removed-"xdebug.collect_vars"
xdebug.connect_timeout_ms   200 200
xdebug.coverage_enable  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.coverage_enable"    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.coverage_enable"
xdebug.default_enable   This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.default_enable" This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.default_enable"
xdebug.discover_client_host Off Off
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  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.gc_stats_enable"    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.gc_stats_enable"
xdebug.gc_stats_output_dir  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.gc_stats_output_dir"    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.gc_stats_output_dir"
xdebug.gc_stats_output_name gcstats.%p  gcstats.%p
xdebug.halt_level   0   0
xdebug.idekey   no value    no value
xdebug.log  no value    no value
xdebug.log_level    7   7
xdebug.max_nesting_level    256 256
xdebug.max_stack_frames -1  -1
xdebug.mode debug   debug
xdebug.output_dir   /tmp    /tmp
xdebug.overload_var_dump    This setting has been removed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#removed-"xdebug.overload_var_dump"  This setting has been removed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#removed-"xdebug.overload_var_dump"
xdebug.profiler_append  Off Off
xdebug.profiler_enable  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.profiler_enable"    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.profiler_enable"
xdebug.profiler_enable_trigger  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.profiler_enable_trigger"    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.profiler_enable_trigger"
xdebug.profiler_enable_trigger_value    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.profiler_enable_trigger_value"  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.profiler_enable_trigger_value"
xdebug.profiler_output_dir  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.profiler_output_dir"    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.profiler_output_dir"
xdebug.profiler_output_name cachegrind.out.%p   cachegrind.out.%p
xdebug.remote_autostart This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_autostart"   This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_autostart"
xdebug.remote_connect_back  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_connect_back"    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_connect_back"
xdebug.remote_enable    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_enable"  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_enable"
xdebug.remote_host  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_host"    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_host"
xdebug.remote_log   This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_log" This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_log"
xdebug.remote_log_level This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_log_level"   This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_log_level"
xdebug.remote_mode  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_mode"    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_mode"
xdebug.remote_port  This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_port"    This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_port"
xdebug.remote_timeout   This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_timeout" This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.remote_timeout"
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   This setting has been removed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#removed-"xdebug.show_mem_delta" This setting has been removed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#removed-"xdebug.show_mem_delta"
xdebug.start_upon_error default default
xdebug.start_with_request   1   1
xdebug.trace_enable_trigger This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.trace_enable_trigger"   This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.trace_enable_trigger"
xdebug.trace_enable_trigger_value   This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.trace_enable_trigger_value" This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.trace_enable_trigger_value"
xdebug.trace_format 0   0
xdebug.trace_options    0   0
xdebug.trace_output_dir This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.trace_output_dir"   This setting has been changed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-"xdebug.trace_output_dir"
xdebug.trace_output_name    trace.%c    trace.%c
xdebug.trigger_value    no value    no value
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth    3   3

来自浏览器的xdebug_info()

Version 3.0.1

Feature Enabled/Disabled    Docs
Development Aids    ✘ disabled  ????
Coverage    ✘ disabled  ????
GC Stats    ✘ disabled  ????
Profiler    ✘ disabled  ????
Step Debugger   ✔ enabled   ????
Tracing ✘ disabled  ????
Diagnostic Log
Message Docs
⚠️  [Step Debug] Creating socket for '127.0.0.1:9003', poll success, but error: Operation now in progress (29). ????
????  [Step Debug] Could not connect to debugging client. Tried: 127.0.0.1:9003 (through xdebug.client_host/xdebug.client_port) :-(   ????
PHP
Build Configuration
Version 7.4.13
Debug Build no
Thread Safety   disabled
Settings
Configuration File (php.ini) Path   /etc/php/7.4/cli
Loaded Configuration File   /etc/php/7.4/fpm/php.ini
Scan this dir for additional .ini files /etc/php/7.4/fpm/conf.d
Additional .ini files parsed    /etc/php/7.4/fpm/conf.d/10-mysqlnd.ini, /etc/php/7.4/fpm/conf.d/10-opcache.ini, /etc/php/7.4/fpm/conf.d/10-pdo.ini, /etc/php/7.4/fpm/conf.d/15-xml.ini, /etc/php/7.4/fpm/conf.d/20-calendar.ini, /etc/php/7.4/fpm/conf.d/20-ctype.ini, /etc/php/7.4/fpm/conf.d/20-curl.ini, /etc/php/7.4/fpm/conf.d/20-dom.ini, /etc/php/7.4/fpm/conf.d/20-exif.ini, /etc/php/7.4/fpm/conf.d/20-ffi.ini, /etc/php/7.4/fpm/conf.d/20-fileinfo.ini, /etc/php/7.4/fpm/conf.d/20-ftp.ini, /etc/php/7.4/fpm/conf.d/20-gd.ini, /etc/php/7.4/fpm/conf.d/20-gettext.ini, /etc/php/7.4/fpm/conf.d/20-iconv.ini, /etc/php/7.4/fpm/conf.d/20-imagick.ini, /etc/php/7.4/fpm/conf.d/20-imap.ini, /etc/php/7.4/fpm/conf.d/20-intl.ini, /etc/php/7.4/fpm/conf.d/20-json.ini, /etc/php/7.4/fpm/conf.d/20-mbstring.ini, /etc/php/7.4/fpm/conf.d/20-mysqli.ini, /etc/php/7.4/fpm/conf.d/20-pdo_mysql.ini, /etc/php/7.4/fpm/conf.d/20-phar.ini, /etc/php/7.4/fpm/conf.d/20-posix.ini, /etc/php/7.4/fpm/conf.d/20-readline.ini, /etc/php/7.4/fpm/conf.d/20-shmop.ini, /etc/php/7.4/fpm/conf.d/20-simplexml.ini, /etc/php/7.4/fpm/conf.d/20-soap.ini, /etc/php/7.4/fpm/conf.d/20-sockets.ini, /etc/php/7.4/fpm/conf.d/20-sysvmsg.ini, /etc/php/7.4/fpm/conf.d/20-sysvsem.ini, /etc/php/7.4/fpm/conf.d/20-sysvshm.ini, /etc/php/7.4/fpm/conf.d/20-tokenizer.ini, /etc/php/7.4/fpm/conf.d/20-xdebug.ini, /etc/php/7.4/fpm/conf.d/20-xmlreader.ini, /etc/php/7.4/fpm/conf.d/20-xmlrpc.ini, /etc/php/7.4/fpm/conf.d/20-xmlwriter.ini, /etc/php/7.4/fpm/conf.d/20-xsl.ini, /etc/php/7.4/fpm/conf.d/20-zip.ini

【问题讨论】:

  • 1) XDEBUG_SESSION=PHPSTORM 在 php.ini 中是错误的。 2) 你的 PhpStorm 版本到底是什么? 2)请发布phpinfo()输出的整个Xdebug部分+可能xdebug_info()以及以与您尝试调试相同的方式捕获(CLI或网页-他们可以使用不同的php.ini)。 4) 启用 Xdebug 日志,尝试调试并共享日志文件——它会告诉它尝试连接到哪里以及响应是什么。
  • P.S. 127.0.0.2 是什么?是错字吗?它必须是主机操作系统的 IP(运行 PhpStorm)。如果涉及 SSH 隧道,也许您打算使用127.0.0.1? Xdebug 必须能够从 VM 内部连接回主机操作系统。
  • PhpStorm 根本不关心 IDE 密钥。但是如果你需要在 Xdebug 设置中指定一个 IDE 键——xdebug.org/docs/all_settings#idekey
  • 您的 xdebug_info() 输出显示 Xdebug 无法连接。 1) PhpStorm 是否正在监听传入的调试请求? “电话手柄”图标是否为绿色/活动? 2) 实际上是 PhpStorm 侦听该端口吗?检查netstat 或您的操作系统(运行 IDE)上的任何内容。 3)防火墙怎么样 - 在主机和服务器上。 4) 使用telnet 并尝试从您的服务器连接回IDE(在127.0.0.1:9003 上)——它是连接还是失败。如果失败 - 那么您的 SSH 隧道不起作用或某些防火墙。

标签: php virtual-machine phpstorm xdebug xdebug-3


【解决方案1】:

LazyOne 在 cmets 中帮助我解决了这个问题。显然,我设置的唯一问题是从这里https://www.jetbrains.com/help/phpstorm/remote-debugging-via-ssh-tunnel.html 在端口 9003(用于 Xdebug3)上创建 SSH 隧道。 您也可以在 mobaxterm 上执行此操作,而不仅仅是在 puTTY 上。我已经检查过,两者都工作正常。

还要确保检查防火墙 sudo ufw status 以确保您的 VM 防火墙允许端口 9003/tcp 连接。

我的Xdebug.ini Xdebug 3 现在看起来像这样:

zend_extension=xdebug.so
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
;# For PhpStorm set below to 9000 (or update IDE's settings).
xdebug.client_port = 9003
xdebug.start_with_request=yes
xdebug.log="/var/log/nginx/xdebug.log"
xdebug.idekey = PHPSTORM
xdebug.discover_client_host=false

【讨论】:

  • 我写了一篇文章并想分享,因为一切都在一个地方。 medium.com/@sirajul.anik/…
  • 对于那些使用 VSCode 的人,idekey 应该是VSCODE
猜你喜欢
  • 2021-03-23
  • 2021-04-03
  • 1970-01-01
  • 2014-08-10
  • 2011-10-29
  • 1970-01-01
  • 1970-01-01
  • 2019-03-15
  • 2021-08-28
相关资源
最近更新 更多