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

Отладка командной строки PHP скрипт в PHPStorm

Я использую PHPStorm в качестве основного инструмента для отладки PHP и очень доволен. До сих пор я использовал Firefox для запуска скриптов, и PHPStorm ловит отлично.

Теперь у меня есть ситуация, когда я запускаю PHP script через командную строку (а не в браузере) и хочу знать, есть ли способ настроить PHPStorm для перехвата прерываний при запуске PHP скрипт через командную строку?

4b9b3361

Ответ 1

Пожалуйста, смотреть/голосовать в связанной проблеме PhpStorm.

В настоящий момент конфигурация немного сложна. Должна быть возможность отлаживаться как описанная в Zend KB, с фальшивым сервером и Php Remote Debug в PhpStorm, Обратите внимание, что в этом учебнике есть ошибка, вам необходимо установить QUERY_STRING (в Windows):

SET "QUERY_STRING=start_debug=1&debug_port=10137&debug_host=127.0.0.1&debug_stop=1&no_remote=1&debug_session_id=10000"

(обратите внимание на разницу в цитировании, которая важна).

Настройте PhpStorm, как показано на скриншотах:

fake server

remote debug

Нажмите кнопку Отладка на главной панели инструментов. PhpStorm начнет прослушивать соединения отладчика.

В командной строке запустите script:

d:\dev\zend\ZendServer\bin\php.exe d:\work\attaches\sample\helps.php

PhpStorm попадет в точку останова:

breakpoint hit

Это было протестировано в Windows с установкой Zend Server, но должно быть похоже на другие системы и с xdebug.

Если вы хотите отлаживать напрямую из PhpStorm, используйте PHP скрипт Тип запуска/отладки. Ваш экземпляр PHP, настроенный для этого проекта, должен иметь в файлах конфигурации Zend Debugger или Xdebug.

Режим home и debugger PHP можно указать в File | Settings | PHP.

Просто проверено с установкой сервера Zend (PHP home: d:\dev\zend\ZendServer\bin) и Zend Debugger, отлично работает для меня.

Ответ 2

Для включения PHP-отладки с Xdebug в командной строке с помощью Phpstorm очень просто:

export XDEBUG_CONFIG="idekey=PHPSTORM"

В CLI Windows используйте set вместо экспорта.

set XDEBUG_CONFIG="idekey=PHPSTORM"

Убедитесь, что Phpstorm прослушивает подключения отладки PHP.

Чтобы отключить отладку с конца командной строки:

unset XDEBUG_CONFIG

Этот (PHPSTORM) - это IDE-ключ Phpstorm по умолчанию.

Ответ 3

  • Нажмите "Выполнить".
  • Нажмите "Изменить конфигурации".
  • Нажмите зеленый +
  • Выберите PHP Script.
  • Укажите имя в поле "Имя".
  • Предоставьте полный путь к вашему script в поле "Файл".
  • Нажмите "ОК".
  • Выберите script, который вы только что настроили в этом выпадающем меню:

Screenshot of PhpStorm menu bar

  1. Нажмите кнопку запуска или отладки. Ваш script должен запускаться, и он должен поймать любые точки останова, которые установлены.

Если вы запустите script, вы можете увидеть вывод здесь:

Screenshot of Run widget, typically docked on the bottom of the window

Если вы отлаживаете script, вы можете увидеть вывод здесь:

Screenshot of Console widget, docked in the Debug widget

Ответ 4

Убедитесь, что установлены переменные окружения SERVER_NAME и SERVER_PORT. PHPStorm требует от них правильного отображения. Установите их с экспортом в bash или вручную в phpscript. В обоих случаях PHPStorm может найти его под $_SERVER['SERVER_NAME'] и $_SERVER['SERVER_PORT'] правильно.

Ответ 5

Для меня (на MacOS) это сработало так: export XDEBUG_CONFIG="idekey=12345"