Подтвердить что ты не робот

Отладка мастера laravel от PHPStorm с усадьбой

Я настраиваю Laravel Homestead. Затем я настроил как homestead xdebug.ini, так и PHPStorm, чтобы выполнить отладку.

Вот мой xdebug.ini внутри усадьбы

zend_extension=xdebug.so
xdebug.remote_autostart = on
xdebug.remote_enable = on
xdebug.remote_connect_back = on
xdebug.remote_port = 9000
xdebug.idekey = "vagrant"

Чтобы начать сеанс отладки, выполните следующие шаги:

  • В PHPStorm → Начало Прослушивание соединений
  • В PHPStorm установить точку останова
  • В моем браузере → Используйте XDebug Chrome Helper ИЛИ добавьте мой URL? XDEBUG_SESSION_START =
  • Загрузите страницу

Это прекрасно работает. Моя проблема в том, что когда я нахожусь внутри командной строки, и я запускаю команду php artisan, тогда я не могу заставить ее ударить по моим точкам останова.

Что я пробовал

  • XDEBUG_CONFIG="idekey=PHPSTORM" PHP_IDE_CONFIG="serverName=server_name" php -dxdebug.remote_host="127.0.0.1" artisan mycommand

  • php -d xdebug.profiler_enable=On artisan mycommand

  • Я также попытался установить xdebug.remote_autostart=On, затем sudo service php5-fpm restart, но мои точки останова никогда не попадают в PHPStorm

4b9b3361

Ответ 1

Важны две вещи:

  • remote_connect_back не может работать в случае CLI, потому что Xdebug не может обнаружить удаленный IP-адрес, когда вы находитесь в консоли.
  • При использовании homestead/VirtualBox в сетевой конфигурации NAT ваша машина разработки (которая работает под управлением PHPStorm) не имеет IP 127.0.0.1, видимого из виртуальной машины. Вместо этого он обычно имеет IP-адрес, например 10.0.2.2. Чтобы узнать правильный IP-адрес, посмотрите на Apache access.log,

Следующие работали для меня:

php -dxdebug.remote_autostart=on -dxdebug.remote_connect_back=off 
  -dxdebug.remote_host=10.0.2.2 artisan
  1. edit Если ваши точки останова не пострадали, вам необходимо правильно настроить сопоставления папок (поскольку ваш путь в среде IDE отличается от того, что видит веб-сервер:

Folder Mappings

  1. Сделайте export PHP_IDE_CONFIG="serverName=yourservername" в вашей виртуальной машине, где yourservername - это то, что вы настроили на скриншоте под "name"

  2. Добавьте конфигурацию удаленной отладки Php с ключом IDE и указанным выше сервером Debug Configuration

  3. И добавьте ключ IDE и remote_host к VM XDEBUG-CONFIG

    export XDEBUG_CONFIG="idekey=artisan remote_host=10.0.2.2"

Ссылки: http://randyfay.com/content/remote-command-line-debugging-phpstorm-phpdrupal-including-drush

Ответ 2

Или, если все это слишком сложно или не работает, вы можете запустить команду artisan с помощью url (route), используя

Artisan::call('whatever:command');