Я пытаюсь добавить отладку в старый проект, который использует exec()
для асинхронного запуска нового сеанса из другого сценария PHP:
exec("php /var/www/html/validata/index.php",$result)
Обычный сценарий PHP полностью отладка с помощью Xdebug, но сценарий, запущенный с помощью команды exe c, не потому, что он не может отобразить из file:///var/www/html/index.php
в локальное расположение файла, поскольку он запущен в оболочке CLI. Сеанс, начатый таким образом, запускает отладчик, но не может найти файл локально:
Cannot find file '/var/www/html/validata/index.php' locally.
To fix it set server name by environment variable PHP_IDE_CONFIG and restart debug session.
Я следовал инструкциям, чтобы добавить PHP_IDE_CONFIG
в env. Я также добавил это на сервер с 127.0.0.1, замененным на IP-адрес P C рабочего стола (сервер работает в контейнере docker):
export XDEBUG_CONFIG="remote_enable=1 remote_mode=req remote_port=9000 remote_host=127.0.0.1 remote_connect_back=0"
Любые указатели очень ценятся!
ОБНОВЛЕНИЕ
Решение:
Используйте интерпретатор cli, установленный для контейнера docker (в настройках> Языки и Frameworks> PHP> Интерпретатор CLI, добавьте новый, выберите docker и укажите его на двоичный файл php), чтобы сеанс отладки можно было начать с новой конфигурацией отладки. Я скопировал аргументы из команды exe c в новую конфигурацию, и теперь он может полностью отлаживать скрипт. Мне нужно подготовить таблицу базы данных, чтобы она была полностью тестируемой, но для меня это рабочее решение.
Спасибо за все ответы!