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
- 3034 reads