Отладка командной строки PHP скрипт в PHPStorm
Я использую PHPStorm в качестве основного инструмента для отладки PHP и очень доволен. До сих пор я использовал Firefox для запуска скриптов, и PHPStorm ловит отлично.
Теперь у меня есть ситуация, когда я запускаю PHP script через командную строку (а не в браузере) и хочу знать, есть ли способ настроить PHPStorm для перехвата прерываний при запуске PHP скрипт через командную строку?
Ответы
Ответ 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]()
- Нажмите кнопку запуска или отладки. Ваш 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"