【发布时间】:2021-04-25 16:35:42
【问题描述】:
我想我都试过了,但我无法在 Ubuntu 20.04 上将 Xdebug 与 NetBeans 一起使用,IDE 底部显示一条消息“Waiting For Connection (netbeans-xdebug)”。
如果我使用phpinfo(),我可以看到 Xdebug 已启用,这是我的 xdebug.ini 配置文件:
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host=0
xdebug.client_port=9000
xdebug.client_host=127.0.0.1
xdebug.remote_handler=dbgp
在 NetBeans 中,我在 Options -> PHP -> Debugging 中的设置是:
Debugger Port: 9000
Session ID : netbeans-xdebug
Maximum Data Length : 2048
Stop at First Line : unchecked
Watches and Balloon Evaluation : unchecked
Show Requested URLs : checked
Show Debugger Console : checked
我知道这个问题已经被问过很多次了,但大多数都是老问题,没有一个答案有效。 这让我发疯,所以任何帮助将不胜感激!
-- 编辑:
这里是 xdebug.log 文件的内容:
[21406] Log opened at 2021-01-21 12:42:36.233357
[21406] [Step Debug] INFO: Connecting to configured address/port: 127.0.0.1:9000.
[21406] [Step Debug] WARN: Creating socket for '127.0.0.1:9000', poll success, but error: Operation now in progress (29).
[21406] [Step Debug] ERR: Could not connect to debugging client. Tried: 127.0.0.1:9000 (through xdebug.client_host/xdebug.client_port) :-(
[21406] Log closed at 2021-01-21 12:42:36.234607
这里是 xdebug_info() 的输出:
PHP
Build Configuration
Version 7.4.14
Debug Build no
Thread Safety disabled
Settings
Configuration File (php.ini) Path /etc/php/7.4/cli
Loaded Configuration File /etc/php/7.4/apache2/php.ini
Scan this dir for additional .ini files /etc/php/7.4/apache2/conf.d
Additional .ini files parsed /etc/php/7.4/apache2/conf.d/10-mysqlnd.ini, /etc/php/7.4/apache2/conf.d/10-opcache.ini, /etc/php/7.4/apache2/conf.d/10-pdo.ini, /etc/php/7.4/apache2/conf.d/15-xml.ini, /etc/php/7.4/apache2/conf.d/20-calendar.ini, /etc/php/7.4/apache2/conf.d/20-ctype.ini, /etc/php/7.4/apache2/conf.d/20-curl.ini, /etc/php/7.4/apache2/conf.d/20-dom.ini, /etc/php/7.4/apache2/conf.d/20-exif.ini, /etc/php/7.4/apache2/conf.d/20-ffi.ini, /etc/php/7.4/apache2/conf.d/20-fileinfo.ini, /etc/php/7.4/apache2/conf.d/20-ftp.ini, /etc/php/7.4/apache2/conf.d/20-gd.ini, /etc/php/7.4/apache2/conf.d/20-gettext.ini, /etc/php/7.4/apache2/conf.d/20-iconv.ini, /etc/php/7.4/apache2/conf.d/20-json.ini, /etc/php/7.4/apache2/conf.d/20-mbstring.ini, /etc/php/7.4/apache2/conf.d/20-mysqli.ini, /etc/php/7.4/apache2/conf.d/20-pdo_mysql.ini, /etc/php/7.4/apache2/conf.d/20-phar.ini, /etc/php/7.4/apache2/conf.d/20-posix.ini, /etc/php/7.4/apache2/conf.d/20-readline.ini, /etc/php/7.4/apache2/conf.d/20-shmop.ini, /etc/php/7.4/apache2/conf.d/20-simplexml.ini, /etc/php/7.4/apache2/conf.d/20-sockets.ini, /etc/php/7.4/apache2/conf.d/20-sysvmsg.ini, /etc/php/7.4/apache2/conf.d/20-sysvsem.ini, /etc/php/7.4/apache2/conf.d/20-sysvshm.ini, /etc/php/7.4/apache2/conf.d/20-tokenizer.ini, /etc/php/7.4/apache2/conf.d/20-xdebug.ini, /etc/php/7.4/apache2/conf.d/20-xmlreader.ini, /etc/php/7.4/apache2/conf.d/20-xmlwriter.ini, /etc/php/7.4/apache2/conf.d/20-xsl.ini
Directive Local Value Master Value Docs
xdebug.mode debug debug ????
xdebug.start_with_request yes yes ????
xdebug.start_upon_error default default ????
xdebug.output_dir /tmp /tmp ????
xdebug.trigger_value no value no value ????
xdebug.file_link_format no value no value ????
xdebug.filename_format no value no value ????
xdebug.log /var/log/xdebug.log /var/log/xdebug.log ????
xdebug.log_level 7 7 ????
xdebug.var_display_max_children 128 128 ????
xdebug.var_display_max_data 512 512 ????
xdebug.var_display_max_depth 3 3 ????
xdebug.max_nesting_level 256 256 ????
xdebug.cli_color 0 0 ????
xdebug.force_display_errors Off Off ????
xdebug.force_error_reporting 0 0 ????
xdebug.halt_level 0 0 ????
xdebug.max_stack_frames -1 -1 ????
xdebug.show_error_trace Off Off ????
xdebug.show_exception_trace Off Off ????
xdebug.show_local_vars 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.profiler_output_name cachegrind.out.%p cachegrind.out.%p ????
xdebug.profiler_append Off Off ????
xdebug.cloud_id no value no value ????
xdebug.client_host 127.0.0.1 127.0.0.1 ????
xdebug.client_port 9000 9000 ????
xdebug.discover_client_host Off Off ????
xdebug.client_discovery_header no value no value ????
xdebug.idekey no value no value ????
xdebug.connect_timeout_ms 200 200 ????
xdebug.scream Off Off ????
xdebug.gc_stats_output_name gcstats.%p gcstats.%p ????
xdebug.trace_output_name trace.%c trace.%c ????
xdebug.trace_format 0 0 ????
xdebug.trace_options 0 0 ????
xdebug.collect_assignments Off Off ????
xdebug.collect_return Off Off ????
【问题讨论】:
-
1) 显示您的
phpinfo()输出的整个Xdebug 部分(或xdebug_info()_ 以与您尝试调试相同的方式捕获(网页或CLI - 这很重要)2 ) 启用 Xdebug 日志(不要将其指向 tmp 文件夹,使用/var/log/...之类的东西,因为 Ubuntu 上的临时路径是每个应用程序/进程虚拟化的),尝试调试然后共享日志——它会告诉它在哪里尝试连接(如果有的话)以及响应是什么。 -
您的 Xdebug 配置正常。无论如何尝试添加
xdebug.idekey="netbeans-xdebug"(也许这对NetBeans很重要)。 -
您的问题是: 根据日志,没有人在该端口上监听。我不是 NetBeans 用户,所以不能准确地说出您需要做什么……但请仔细检查 NetBeans 是否正在侦听该 TCP 9000 端口(例如,使用
netstat或类似方法查看)。这应该在您启动调试后检查(单击“调试文件”或类似按钮(我想检查netbeans.org/kb/docs/php/debugging.html#debuggingSession 和更高版本或类似指南——我使用的是 PhpStorm,它在那里有点不同) -
我们需要更多信息。您的 Netbeans 是否与您的服务器在同一台机器上运行?
标签: netbeans xdebug ubuntu-20.04 php-7.4