【问题标题】:XDebug: how to debug remote console application?XDebug:如何调试远程控制台应用程序?
【发布时间】:2013-05-13 09:01:37
【问题描述】:

我已阅读此文档:http://xdebug.org/docs/remote

我可以调试我的网络应用程序。
但是调试器不会针对控制台命令启动。

我用于 XDebug 的 .ini 文件(有效):

$ cat /etc/php5/fpm/conf.d/xdebug.ini
zend_extension=/usr/lib/php5/20090626/xdebug.so
xdebug.idekey="PHPSTORM"
xdebug.remote_connect_back=1
xdebug.remote_enable=1

cli 的.ini 文件相同。

我也尝试在调试之前添加export XDEBUG_CONFIG="idekey=PHPSTORM remote_enable=1 remote_connect_back=1",但没有帮助。

如何启用它?

【问题讨论】:

标签: command-line-interface xdebug phpstorm


【解决方案1】:

简答:

我们需要设置2个环境变量,这行:

export PHP_IDE_CONFIG="serverName={SERVER NAME IN PHP STORM}"
export XDEBUG_CONFIG="remote_host=$(echo $SSH_CLIENT | awk '{print $1}') idekey=PHPSTORM"

更新: 好的 IDE(例如 PhpStorm)会为您完成,只需将 PHP 解释器设置为远程解释器即可。

【讨论】:

  • 第二行应该够了。
  • 就我而言,第一行也是需要的。
  • 我试图把第二行放到/etc/php5/cli/php.ini,但是因为它很奇怪而且没有任何效果,我用谷歌搜索了“Ubuntu export”并了解到它应该在运行 php 脚本之前在终端中运行.从您对自己问题的回答来看,这一点并不明显。
  • 就我而言,第一行是必需的。对于第二行,我使用了 php.ini 中的设置。设置为我的客户端 IP(即外部 IP)的 remote_host 也不起作用,因为连接通过互联网,我不得不使用反向 SSH 隧道。如果您(或您的带端口转发的路由器)配置了公共 IP 和防火墙,它应该可以工作。
【解决方案2】:

感谢@DmitryR 的回答!

但是,为了避免每次打开控制台时都导出 XDEBUG_CONFIG,我在我的控制台中添加了第二行(这对我来说已经足够了)

~/.bashrc 文件

export XDEBUG_CONFIG="remote_host=$(echo $SSH_CLIENT | awk '{print $1}') idekey=PHPSTORM"

【讨论】:

    猜你喜欢
    • 2015-05-22
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 2016-01-30
    • 1970-01-01
    • 2018-06-19
    相关资源
    最近更新 更多