XDebug with PhpStorm:调试CLI脚本,通过反向SSH隧道进行连接

时间:2016-10-11 13:08:32

标签: linux debugging ssh phpstorm xdebug

我已经获得了PhpStorm 10.0.3并尝试调试在远程服务器上运行的CLI脚本。

我已经从本地计算机设置了反向SSH隧道到远程服务器。

远程服务器xDebug配置如下:

# /etc/php5/apache2/conf.d/20-xdebug.ini
# /etc/php5/cli/conf.d/20-xdebug.ini
zend_extension=xdebug.so
xdebug.remote_enable=true
xdebug.idekey=PHPSTORM
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

我尝试启动这样的脚本:

 php -dxdebug.remote_autostart=On /var/www/index.php

PhpStorm调试选项卡已打开(有时它是灰色的),但它不会提示我修复文件映射,它不会打开调试文件,也不会指向断点行。远程服务器脚本执行被阻止,直到我手动终止调试会话。 enter image description here

当我使用GET参数调试Apache2时:

 ?XDEBUG_SESSION_START=1 

调试工作正常,我被提示修复文件映射。

知道为什么会这样吗?

我在下面学习,但它没有解决我的问题: https://confluence.jetbrains.com/display/PhpStorm/Debugging+PHP+CLI+scripts+with+PhpStorm (问题:我的脚本现在应该如何在没有设置remote_autostart设置的情况下启动调试?在绿色提示中,他们说它是可选的。)

XDebug: how to debug remote console application? (Re:将XDEBUG_CONFIG变量中的remote_host设置为我的本地计算机外部IP [检查复制的bash片段]似乎不起作用。我的本地计算机无法通过外部IP访问,只能通过反向SSH访问隧道)

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

1 个答案:

答案 0 :(得分:1)

这里实际上有两个问题。 与@LazyOne注释一样,PHP5-FPM服务发生端口冲突。在我的情况下,我已将其关闭,因为客户端的服务器配置无论如何都不使用FPM。

我还必须在远程主机上导出PHP_IDE_CONFIG变量:

 export PHP_IDE_CONFIG="serverName=serverNameInPHPStorm"

该主机是在PHPStorm端配置的(设置/首选项|语言和框架| PHP |服务器)。我还必须在远程服务器路径位置映射根项目文件夹,因为它们在我的本地/ dev机器和远程机器之间是不同的。