PhpStorm以CLI模式而不是远程模式运行调试

时间:2017-09-20 08:45:30

标签: php debugging phpstorm xdebug

我遇到了以下问题。当我试图在PhpStorm中运行调试时,似乎以非常随意的模式启动调试会话。显然我做错了,但有时它会以远程模式启动 - 然后我可以访问服务器全局变量,但大部分时间它都是以CLI模式启动的 - 所以我也认为我的远程调试配置没问题。

我正在使用此页面中的标记:https://www.jetbrains.com/phpstorm/marklets/

以下是我遵循的步骤:

  1. 我点击“开始收听连接...”
  2. 然后我单击“启动调试器”书签,我保存了标记,并检查cookie是否已设置并且实际上已设置并且具有我在远程调试配置中设置的相同IDE ID值。
  3. 然后我点击书签中的“调试此页面”标记或只是重新加载页面。
  4. 最后我点击了PhpStorm中的调试按钮。
  5. 然后正如我所说 - 它有时会以CLI模式启动,有时会以远程模式启动。

    我认为解决问题的关键是从顶部条带上的运行/调试按钮左侧的下拉列表 - 我只能选择“编辑配置”和“index.php”之间的图标,看起来像与“编辑配置”窗口中的“PHP脚本”图标相同。

    此外,我在调试面板的顶部条带中打开了几个标签但是所有这些标签都有脚本模式的图标建议......

    如何清楚地设置我想使用远程调试? 我正在使用PhpStorm 2017.1

1 个答案:

答案 0 :(得分:0)

如果要在网页上调试PHP,您唯一需要做的就是开始侦听远程连接。为此,通过转发9000端口的ssh连接到远程主机(假设您的PHPStorm正在监听此节点):ssh -R 9000:localhost:9000 <remote_host>。 我相信Xdebug正在服务器上运行。 如果您不是远程主机的管理员,则可以通过在.htaccess文件中设置以下变量来确保设置:

php_flag display_errors 1
php_flag  xdebug.remote_enable on
php_value xdebug.remote_host 127.0.0.1
php_value xdebug.remote_port 9000

至于标记,您可以尝试使用其中一种流行浏览器的市场免费扩展(即Xdebug助手)

如果你想在远程主机上调试CLI脚本,并且你不确定它是否都是为此配置的,除了转发端口你不能通过使用php脚本的以下参数来尝试调试:

php -dzend_extension=<path_to_xdebug_on_server, i.e /var/lib/apache2/modules/xdebug.so> -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_connect_back=0 -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=On -dxdebug.idekey=<your_ide_key> <script i.e. index.php>