Xdebug laravel artisan commands

我经常使用xdebug来调试应用程序,我构建了一个laravel应用程序,该应用程序需要上传csv将数据插入数据库,并将id插入作业队列。

我已经编写了一个工匠命令,通过cron运行,然后对这些数据执行某些操作。

Xdebug适用于通过浏览器访问站点,但是当从cli运行时,它不会在断点上中断。

我运行php5-fpm。我的文件和两者都包含以下设置:/etc/php5/fpm/php.ini/etc/php5/cli/php/ini

zend_extension=/usr/lib/php5/20121212/xdebug.so 
xdebug.remote_enable = 1 
xdebug.idekey = 'dev_docker' 
xdebug.remote_autostart = 1 
xdebug.remote_connect_back = {{my host ip}} 
xdebug.remote_port = 9000 
xdebug.remote_handler=dbgp

然后,我运行工匠命令

php artisan jobqueue::process --batch-size=10 --sleep=10

我知道该命令正在运行,因为->info('text')显示在终端中

有人知道我错过了什么吗?


答案 1

也许这会帮助某人。

简而言之,我有同样的问题,但我没有被接受的答案。我的解决方案是从命令行运行此命令:

php -dxdebug.remote_enable=1 -dxdebug.remote_autostart=on -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 artisan my:command

答案 2

如果您使用的是 XDebug 版本 3,请尝试:

php -dxdebug.mode=debug -dxdebug.client_host=host.docker.internal -dxdebug.client_port=9003 -dxdebug.start_with_request=yes artisan your:command

推荐