【问题标题】:PhpStorm and Remote XDebug not workingPhpStorm 和远程 XDebug 不起作用
【发布时间】:2015-12-02 17:00:45
【问题描述】:

我已按照多个教程使用 PhpStorm 设置 XDebug,但似乎
我一点也不幸运。无论我尝试什么,它总是卡在
等待带有 ide 键 'PHPSTORM' 的传入连接
但是当我用 CTRL + R 重新加载页面时,我可以看到 一秒 已连接
但是,然后它切换回“等待..”
我已经尝试过 XDebug Chrome 插件和 PHPStorm XDebug Generator 书签
以及在 PHPStorm 中启用 “开始侦听 PHP 调试连接”
我将 NginX 与 php5-fpm 一起使用并尝试了 tcpdump 9089
如前所述,它会在一瞬间倾倒它。但后来又丢了..

有人可以帮帮我吗?

我的 php.ini 配置:

[xdebug]
zend_extension="/usr/lib/php5/20121212/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_port=9089
xdebug.remote_connect_back=1
xdebug.profiler_enable=1
xdebug.profilter_output_dir="/tmp/xdebug.log"
xdebug.idekey=PHPSTORM

我的 PHPStorm 设置:

[

编辑:我不知道为什么,但删除 xdebug.remote_connect_back=1
并将其替换为 xdebug.remote_host=my.ip.add.ess 使其工作?!
当我阅读文档时,我了解到第一个设置是针对隐式请求
而后一个是用于明确的 ip 请求..

【问题讨论】:

  • 如果我尝试调试 PHP 脚本 而不是一个完整的项目(类、函数等),我的 xdebug 的行为类似,也许考虑到你把你的断点。其次,您是否尝试过使用xdebug.remote_host = ... 而不是remote_connect_back
  • 当我使用 laravel 项目时,我设置了一个断点,从数据库中获取数据。不,我没有尝试 remote_host,因为我读到 xdebug.remote_connect_back=1 是“相同的”,仅适用于所有传入连接而不是特定 IP
  • 请为此类不成功的调试会话收集并提供 xdebug 日志:xdebug.org/docs/all_settings#remote_log
  • “我不知道为什么,但删除...” 可能是错误的 IP 被自动检测到(你必须查看 xdebg 日志)或者你的防火墙被阻止该 IP 上的连接(例如,因为它属于不同的子网/防火墙配置文件)

标签: php nginx phpstorm xdebug


【解决方案1】:

尝试以下设置,听起来很有趣,但只需复制整个块而不是输入它们(相信你我帮助了我的几个同事)

xdebug.remote_host=10.0.2.2
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.show_exception_trace=0
xdebug.show_local_vars=0
xdebug.var_display_max_data=10000
xdebug.var_display_max_depth=20
xdebug.max_nesting_level=200

附言

我假设您的客户机(虚拟机)中存在灭绝文件,因为您说它将在断点处停止以进行声音分割

我还假设您的浏览器正在发送正确的“PHPSTORM”

【讨论】:

    猜你喜欢
    • 2017-11-06
    • 2019-03-04
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 2020-10-10
    • 2017-08-31
    • 2018-11-01
    • 2011-11-06
    相关资源
    最近更新 更多