netbeans xdebug docker Настройка отладки (ubuntu linux)
Primary tabs
Рассмотрим ситуацию, когда приложение с php запущено внутри контейнера и нам нужно отлаживать его через xdebug (инструкция проверялась для php7.4 и Netbeans11.2)
- Делаем обычные настройки Run Configuration (чтобы попасть - правой кнопкой мыши по названию проекта в навигаторе и затем выбираем "Properties") (важно указать корректный путь к index file), например:
- Далее xdebug.ini настраиваем так (xdebug 3 иначе):
zend_extension=xdebug.so xdebug.remote_enable=1 xdebug.remote_port=9000 xdebug.remote_autostart=0 xdebug.remote_connect_back=0 xdebug.remote_handler=dbgp xdebug.idekey=PHP_STORM xdebug.remote_host=172.30.0.1
где
- 172.30.0.1 - ip вашего хоста (на котором запущен докер) и одновременно шлюз из подсети докера-- далее показано как его установить
- PHP_STORM -- можно оставить это значение, если кто-то в команде использует шторм и оно важно для этой IDE (нетбинс будет работать и с такой конфигурацией)
Задать ip хоста для докера, можно используя подобный docker-compose.yml:
version: '3.7' services: web: build: ./ ports: - 9121:80 - 9123:81 volumes: - '../:/var/www/html/site' - './config/apache/apache-config.conf:/etc/apache2/sites-enabled/000-default.conf' - './config/apache/ports.conf:/etc/apache2/ports.conf' - './config/php/php.ini:/etc/php/7.4/apache2/php.ini' - './config/php/xdebug.ini:/etc/php/7.4/mods-available/xdebug.ini' networks: frontnet: ipv4_address: 172.30.1.2 db: image: postgres:12.2 volumes: - './config/postgresql:/docker-entrypoint-initdb.d' environment: POSTGRES_PASSWORD: mycool_password POSTGRES_USER: mycool_user POSTGRES_MULTIPLE_DATABASES: mycool_db,mycool_db_test ports: - 9122:5432 networks: frontnet: ipv4_address: 172.30.1.4 networks: frontnet: ipam: driver: default config: - subnet: 172.30.0.0/16
-- где строка
subnet: 172.30.0.0/16
и обеспечит для сети frontnet адрес шлюза 172.30.0.1, который будет является вашим хостом.
ВНИМАНИЕ: если первая попытка отладки после запуска IDE прошла неуспешно и вы остановили отладку, то может потребоваться перезапуск IDE.
- Log in to post comments
- 1658 reads