Отладка сценария командной строки PHP в PHPStorm - PullRequest
21 голосов
/ 15 марта 2011

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

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

Ответы [ 7 ]

52 голосов
/ 02 июля 2013

Включить PHP Отладку с помощью Xdebug в оболочке / командной строке с помощью Phpstorm очень просто:

export XDEBUG_CONFIG="idekey=PHPSTORM"

В CLI Windows используйте set вместо export.

set XDEBUG_CONFIG="idekey=PHPSTORM"

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

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

unset XDEBUG_CONFIG

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

13 голосов
/ 15 марта 2011

Пожалуйста смотрите / голосуйте связанная проблема 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

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

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

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

PhpStorm достигнет точки останова:

breakpoint hit

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

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

PHP home и режим отладчика можно указать в File | Settings | PHP.

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

5 голосов
/ 10 января 2015
  1. Нажмите кнопку «Выполнить».
  2. Нажмите кнопку «Редактировать конфигурации» ...
  3. Нажмите значок зеленого цвета +
  4. Выбрать сценарий PHP.
  5. Введите имяв поле Имя.
  6. Укажите полный путь к сценарию в поле Файл.
  7. Нажмите кнопку ОК.
  8. Выберите сценарий, который вы только что настроили в этом раскрывающемся списке:

Screenshot of PhpStorm menu bar

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

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

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

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

Screenshot of Console widget, docked in the Debug widget

2 голосов
/ 02 января 2013

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

1 голос
/ 15 апреля 2016

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

0 голосов
/ 17 марта 2019

В MacOS я использовал другой bash_profile. Сначала мне нужно было выполнить следующую команду:

source ~/.bash_profile

Это изменило мой php со встроенного / usr / bin / php на тот, который установлен через XAMPP. XDebug PHPStorm начал работать после вышеуказанной команды.

0 голосов
/ 19 сентября 2018

Ни одно из этих предложений не работало для меня нормально.

Если вы находитесь в той же ситуации, попробуйте эту команду (проверьте правильный путь интерпретатора php)

/usr/bin/php -dzend_extension=xdebug.so -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=1 [PHP_SCRIPT]
...