有没有办法使用PhpStorm和Xdebug调试RabbitMQ Consumer(php-ampqlib)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法使用PhpStorm和Xdebug调试RabbitMQ Consumer(php-ampqlib)?相关的知识,希望对你有一定的参考价值。

这是我的开发设置:

IDE:phpStorm 9.0.2 调试器:Xdebug 2.3.3 消息队列服务器:RabbitMQ 3.5.6 PHP Lib连接到RabbitMQ服务器:php-ampqlib

为了启动我的消费者,我正在使用CakePHP任务并运行如下:

../lib/Cake/Console/cake cron message_trigger_consumer

当我运行此命令时,我的消费者已启动并等待消息,该消息将来自生产者(例如:发送确认电子邮件的保存表单按钮)。直到这里,一切都很好,但我的两个问题是: 1)有没有办法调试消费者?在我看来,消费者处于一个不同的过程,这就是Xdebug无法调试它的原因 2)有办法将我的Consumer流程附加到我在PhpStorm + Xdebug中的当前调试吗?

如果你不明白我的问题,请告诉我你的疑惑。

答案

在Web上下文中,Xdebugs会话通常由名为XDEBUG_SESSION的Cookie触发。

在CLI上没有cookie,因此您必须告诉xdebug手动启动会话:

export PHP_IDE_CONFIG="serverName=your-server-name-configured-in-php-storm"
export XDEBUG_CONFIG="remote_host=ip_of_php_storm_pc idekey=PHPSTORM"

然后在PHP Storm中,只需通过电话听筒图标收听传入的连接。

它的工作很棒!

另一答案

Xdebug and RabbitMQ consumer commands

运行cake cron message_trigger_consumer不会在IDE中触发xdebug。要使PhpStorm知道连接,您需要在命令前添加环境变量:

PHP_IDE_CONFIG="serverName=example.com" cake cron message_trigger_consumer

用适当的服务器名称替换example.com

以上是关于有没有办法使用PhpStorm和Xdebug调试RabbitMQ Consumer(php-ampqlib)?的主要内容,如果未能解决你的问题,请参考以下文章

本地环境 XAMPP+phpStorm+XDebug+chrome配置和断点调试

如何使用 phpstorm 和 Xdebug 设置远程调试

PHPSTORM2020.1+Xdebug2.9.8远程调试

PHPStorm、Xdebug 和远程调试(在 phpstorm 中使用 FTP)

phpstorm+xdebug手机app调试

如何连接 PhpStorm 和 Xdebug