Xdebug laravel artisan命令

问题描述 投票:7回答:3

我经常使用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')

有人知道我想念什么吗?

php laravel command-line-interface xdebug artisan
3个回答
0
投票

根据xdebug.remote_connect_back文档,它使用$_SERVER['REMOTE_ADDR']获取调试主机。我猜想在CLI中,您必须改用xdebug.remote_host


10
投票

也许这会帮助某人。

简而言之,我遇到了同样的问题,但是我并没有获得公认的答案的运气。我的解决方案是从命令行运行它:

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

0
投票

我让它与remote_autostart = 1一起使用,并将PHP_IDE_CONFIG环境变量设置为“ serverName = localhost”。 localhost是PHPStorm中服务器配置的名称。现在,当我运行php artisan时,可以在常规断点处中断。

让我更清楚:)

如果您有xdebug与PHPStorm一起使用并且有常规请求,这是您应该如何使其与命令行php(artisan)一起使用。

您已经在PHPStorm中配置了路径,因此它知道应该使用断点向您显示哪个文件。这些路径在服务器下配置(首选项->语言和框架-> PHP->服务器)。

此服务器的名称应为PHP_IDE_CONFIG环境变量中的serverName值。

© www.soinside.com 2019 - 2024. All rights reserved.