Xdebug 3.2.x
loscar20 opened this issue · 4 comments
Codebase
Mounted codebase
Describe your issue
Since xdebug 3.2.x version I cannot debug, I had to go back to version 5.6.11 which has xdebug 3.1.x version.
Output of docker info
Client: Docker Engine - Community
Version: 24.0.6
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.11.2
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.21.0
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 66
Running: 7
Paused: 0
Stopped: 59
Images: 327
Server Version: 24.0.6
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
containerd version: 61f9fd88f79f081d64d6fa3bb1a0dc71ec870523
runc version: v1.1.9-0-gccaecfc
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.2.0-33-generic
Operating System: elementary OS 7 Horus
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.49GiB
Name: HPProBook650G3cd509ddf
ID: TLAW:3V46:AF2L:R3IW:LYV4:UZKQ:SUAT:ZVZ4:WBRF:2FHS:5EGS:ZWPS
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Default Address Pools:
Base: 20.201.0.0/16, Size: 24
Base: 20.202.0.0/16, Size: 24
Contents of your docker-compose.yml
services:
mariadb:
image: wodby/mariadb:$MARIADB_TAG
container_name: "${PROJECT_NAME}_mariadb"
stop_grace_period: 30s
environment:
MYSQL_ROOT_PASSWORD: $DB_ROOT_PASSWORD
MYSQL_DATABASE: $DB_NAME
MYSQL_USER: $DB_USER
MYSQL_PASSWORD: $DB_PASSWORD
volumes:
# - ./mariadb-init:/docker-entrypoint-initdb.d # Place init .sql file(s) here.
- ./db:/var/lib/mysql
php:
image: wodby/drupal-php:$PHP_TAG
container_name: "${PROJECT_NAME}_php"
environment:
SSMTP_MAILHUB: mailhog:1025
# SSMTP_MAILHUB: opensmtpd:25
PHP_SENDMAIL_PATH: '"/usr/bin/dos2unix -u | /usr/sbin/ssmtp -t -f"'
# DB_HOST: $DB_HOST
# DB_PORT: $DB_PORT
# DB_USER: $DB_USER
# DB_PASSWORD: $DB_PASSWORD
# DB_NAME: $DB_NAME
# DB_DRIVER: $DB_DRIVER
# DRUSH_OPTIONS_URI: "http://${PROJECT_BASE_URL}:${PROJECT_PORT}"
# PHP_FPM_USER: wodby
# PHP_FPM_GROUP: wodby
# COLUMNS: 80 # Set 80 columns for docker exec -it.
# # Read instructions at https://wodby.com/docs/stacks/php/local/#xdebug
# Uncomment to debug StartDebug
PHP_XDEBUG: 1
PHP_XDEBUG_MODE: debug
# PHP_XDEBUG_MODE: profile
#PHP_XDEBUG_USE_COMPRESSION: "false"
#PHP_IDE_CONFIG: serverName=my-ide
PHP_XDEBUG_IDEKEY: VSCODE
PHP_XDEBUG_START_WITH_REQUEST: "yes"
# PHP_XDEBUG_DISCOVER_CLIENT_HOST: 1
# PHP_XDEBUG_CLIENT_HOST: 172.17.0.1 # Linux
PHP_XDEBUG_CLIENT_PORT: 9003
PHP_XDEBUG_CLIENT_HOST: host.docker.internal # Docker 18.03+ Mac/Win
PHP_XDEBUG_LOG_LEVEL: 0
# PHP_XDEBUG_CLIENT_HOST: 10.0.75.1 # Windows, Docker < 18.03
# PHP_XDEBUG_LOG: /tmp/php-xdebug.log
# # PHPUnit Drupal testing configurations
# SIMPLETEST_BASE_URL: "http://nginx"
# SIMPLETEST_DB: "${DB_DRIVER}://${DB_USER}:${DB_PASSWORD}@${DB_HOST}/${DB_NAME}#tests_"
# MINK_DRIVER_ARGS_WEBDRIVER: '["chrome", {"browserName":"chrome","goog:chromeOptions":{"args":["--disable-gpu","--headless"]}}, "http://chrome:9515"]'
volumes:
- ./codebase:/var/www/html
- ./settings/services.yml:/var/www/html/web/sites/default/services.yml
- ./settings/settings.local.php:/var/www/html/web/sites/default/settings.local.php
- ./files:/mnt/files
## Alternative for macOS users: Mutagen https://wodby.com/docs/stacks/drupal/local#docker-for-mac
# - drupal:/var/www/html
## For XHProf and Xdebug profiler traces
# - files:/mnt/files
crond:
init: true
image: wodby/drupal-php:$PHP_TAG
container_name: "${PROJECT_NAME}_crond"
environment:
CRONTAB: "*/5 * * * * drush -r /var/www/html/web cron"
command: sudo -E crond -f -d 0
volumes:
# - ./:/var/www/html:cached
- ./codebase:/var/www/html
- ./settings/services.yml:/var/www/html/web/sites/default/services.yml
- ./settings/settings.local.php:/var/www/html/web/sites/default/settings.local.php
- ./files:/mnt/files
## Alternative for macOS users: Mutagen https://wodby.com/docs/stacks/drupal/local#docker-for-mac
# - drupal:/var/www/html
# nginx:
# image: wodby/nginx:$NGINX_TAG
# container_name: "${PROJECT_NAME}_nginx"
# depends_on:
# - php
# environment:
# NGINX_STATIC_OPEN_FILE_CACHE: "off"
# NGINX_ERROR_LOG_LEVEL: debug
# NGINX_BACKEND_HOST: php
# NGINX_SERVER_ROOT: /var/www/html/web
# NGINX_VHOST_PRESET: $NGINX_VHOST_PRESET
# # NGINX_DRUPAL_FILE_PROXY_URL: http://example.com
# volumes:
# # - ./:/var/www/html:cached
# - ./codebase:/var/www/html
# ## Alternative for macOS users: Mutagen https://wodby.com/docs/stacks/drupal/local#docker-for-mac
# # - drupal:/var/www/html
# labels:
# - "traefik.http.routers.${PROJECT_NAME}_nginx.rule=Host(`${PROJECT_BASE_URL}`)"
# Custom PHP container to execute some commands and prevent die of parent.
# Information: https://github.com/wodby/docker4drupal/issues/485
customphp:
image: wodby/drupal-php:$PHP_TAG
container_name: "${PROJECT_NAME}_customphp"
depends_on:
- php
command:
- /bin/bash
- -c
- |
rm -rf /var/www/html/web/sites/default/files
ln -s /mnt/files/public /var/www/html/web/sites/default/files
sudo -E chown -R www-data:www-data /mnt/files
volumes:
# - ./:/var/www/html:cached
- ./codebase:/var/www/html
- ./settings/services.yml:/var/www/html/web/sites/default/services.yml
- ./settings/settings.local.php:/var/www/html/web/sites/default/settings.local.php
- ./files:/mnt/files
mailhog:
image: mailhog/mailhog
container_name: "${PROJECT_NAME}_mailhog"
labels:
- "traefik.http.services.${PROJECT_NAME}_mailhog.loadbalancer.server.port=8025"
- "traefik.http.routers.${PROJECT_NAME}_mailhog.rule=Host(`mailhog.${PROJECT_BASE_URL}`)"
# postgres:
# image: wodby/postgres:$POSTGRES_TAG
# container_name: "${PROJECT_NAME}_postgres"
# stop_grace_period: 30s
# environment:
# POSTGRES_PASSWORD: $DB_PASSWORD
# POSTGRES_DB: $DB_NAME
# POSTGRES_USER: $DB_USER
# POSTGRES_DB_EXTENSIONS: pg_trgm
# volumes:
# - ./postgres-init:/docker-entrypoint-initdb.d # Place init file(s) here.
# - /path/to/postgres/data/on/host:/var/lib/postgresql/data # Use bind mount
apache:
image: wodby/apache:$APACHE_TAG
container_name: "${PROJECT_NAME}_apache"
depends_on:
- php
environment:
APACHE_LOG_LEVEL: debug
APACHE_BACKEND_HOST: php
APACHE_VHOST_PRESET: php
APACHE_DOCUMENT_ROOT: /var/www/html/web
volumes:
# - ./:/var/www/html:cached
- ./codebase:/var/www/html
- ./settings/services.yml:/var/www/html/web/sites/default/services.yml
- ./settings/settings.local.php:/var/www/html/web/sites/default/settings.local.php
- ./files:/mnt/files
## Alternative for macOS users: Mutagen https://wodby.com/docs/stacks/drupal/local#docker-for-mac
# - drupal:/var/www/html
labels:
- "traefik.http.routers.${PROJECT_NAME}_apache.rule=Host(`${PROJECT_BASE_URL}`)"
# varnish:
# image: wodby/varnish:$VARNISH_TAG
# container_name: "${PROJECT_NAME}_varnish"
# depends_on:
# - nginx
# environment:
# VARNISH_SECRET: secret
# VARNISH_BACKEND_HOST: nginx
# VARNISH_BACKEND_PORT: 80
# VARNISH_CONFIG_PRESET: drupal
# VARNISH_ALLOW_UNRESTRICTED_PURGE: 1
# labels:
# - "traefik.http.services.${PROJECT_NAME}_varnish.loadbalancer.server.port=6081"
# - "traefik.http.routers.${PROJECT_NAME}_varnish.rule=Host(`varnish.${PROJECT_BASE_URL}`)"
# redis:
# container_name: "${PROJECT_NAME}_redis"
# image: wodby/redis:$REDIS_TAG
# adminer:
# container_name: "${PROJECT_NAME}_adminer"
# init: true
# image: wodby/adminer:$ADMINER_TAG
# environment:
# # For PostgreSQL:
# # ADMINER_DEFAULT_DB_DRIVER: pgsql
# ADMINER_DEFAULT_DB_HOST: $DB_HOST
# ADMINER_DEFAULT_DB_NAME: $DB_NAME
# labels:
# - "traefik.http.routers.${PROJECT_NAME}_adminer.rule=Host(`adminer.${PROJECT_BASE_URL}`)"
# pma:
# image: phpmyadmin/phpmyadmin
# container_name: "${PROJECT_NAME}_pma"
# environment:
# PMA_HOST: $DB_HOST
# PMA_USER: $DB_USER
# PMA_PASSWORD: $DB_PASSWORD
# UPLOAD_LIMIT: 1G
# labels:
# - "traefik.http.routers.${PROJECT_NAME}_pma.rule=Host(`pma.${PROJECT_BASE_URL}`)"
# solr:
# image: wodby/solr:$SOLR_TAG
# container_name: "${PROJECT_NAME}_solr"
# environment:
# SOLR_DEFAULT_CONFIG_SET: $SOLR_CONFIG_SET
# SOLR_CLOUD_PASSWORD: $SOLR_PASSWORD
# ZK_HOST: zookeeper:2181
# SOLR_HEAP: 1024m
# depends_on:
# - zookeeper
# labels:
# - "traefik.http.services.${PROJECT_NAME}_solr.loadbalancer.server.port=8983"
# - "traefik.http.routers.${PROJECT_NAME}_solr.rule=Host(`solr.${PROJECT_BASE_URL}`)"
# # ports:
# # - "8983:8983"
# zookeeper:
# image: zookeeper:$ZOOKEEPER_TAG
# container_name: "${PROJECT_NAME}_zookeeper"
# environment:
# ZOO_MY_ID: 1
# ZOO_SERVERS: server.1=zookeeper:2888:3888;2181
# ZOO_4LW_COMMANDS_WHITELIST: mntr, conf, ruok
# drupal-node:
# image: wodby/drupal-node:$DRUPAL_NODE_TAG
# container_name: "${PROJECT_NAME}_drupal_nodejs"
# labels:
# - "traefik.http.routers.${PROJECT_NAME}_drupal_node.rule=Host(`drupal_node.${PROJECT_BASE_URL}`)"
# environment:
# NODE_SERVICE_KEY: node-service-key
# memcached:
# container_name: "${PROJECT_NAME}_memcached"
# image: wodby/memcached:$MEMCACHED_TAG
# rsyslog:
# container_name: "${PROJECT_NAME}_rsyslog"
# image: wodby/rsyslog:$RSYSLOG_TAG
# athenapdf:
# image: arachnysdocker/athenapdf-service:$ATHENAPDF_TAG
# container_name: "${PROJECT_NAME}_athenapdf"
# environment:
# WEAVER_AUTH_KEY: weaver-auth-key
# WEAVER_ATHENA_CMD: "athenapdf -S"
# WEAVER_MAX_WORKERS: 10
# WEAVER_MAX_CONVERSION_QUEUE: 50
# WEAVER_WORKER_TIMEOUT: 90
# WEAVER_CONVERSION_FALLBACK: "false"
# node:
# image: wodby/node:$NODE_TAG
# container_name: "${PROJECT_NAME}_node"
# working_dir: /var/www/html/path/to/theme/to/build
# labels:
# - "traefik.http.services.${PROJECT_NAME}_node.loadbalancer.server.port=3000"
# - "traefik.http.routers.${PROJECT_NAME}_node.rule=Host(`node.${PROJECT_BASE_URL}`)"
# expose:
# - "3000"
# volumes:
# - ./:/var/www/html
# command: sh -c 'yarn install && yarn run start'
# webgrind:
# image: wodby/webgrind:$WEBGRIND_TAG
# container_name: "${PROJECT_NAME}_webgrind"
# environment:
# WEBGRIND_PROFILER_DIR: /mnt/files/xdebug
# labels:
# - "traefik.http.routers.${PROJECT_NAME}_webgrind.rule=Host(`webgrind.${PROJECT_BASE_URL}`)"
# volumes:
# - files:/mnt/files
# - ./:/mnt/codebase:cached
elasticsearch:
image: wodby/elasticsearch:$ELASTICSEARCH_TAG
container_name: "${PROJECT_NAME}_elasticsearch"
environment:
ES_JAVA_OPTS: "-Xms500m -Xmx500m"
ulimits:
memlock:
soft: -1
hard: -1
# ports:
# - "9200:9200"
# - "9300:9300"
# kibana:
# image: wodby/kibana:$KIBANA_TAG
# container_name: "${PROJECT_NAME}_kibana"
# depends_on:
# - elasticsearch
# labels:
# - "traefik.http.services.${PROJECT_NAME}_kibana.loadbalancer.server.port=5601"
# - "traefik.http.routers.${PROJECT_NAME}_kibana.rule=Host(`kibana.${PROJECT_BASE_URL}`)"
# opensmtpd:
# container_name: "${PROJECT_NAME}_opensmtpd"
# image: wodby/opensmtpd:$OPENSMTPD_TAG
# xhprof:
# image: wodby/xhprof:$XHPROF_TAG
# container_name: "${PROJECT_NAME}_xhprof"
# restart: always
# volumes:
# - files:/mnt/files
# labels:
# - "traefik.http.routers.${PROJECT_NAME}_xhprof.rule=Host(`xhprof.${PROJECT_BASE_URL}`)"
# chrome:
# image: selenium/standalone-chrome:$SELENIUM_CHROME_TAG
# container_name: "${PROJECT_NAME}_chrome"
# volumes:
# - /dev/shm:/dev/shm
# entrypoint:
# - chromedriver
# - "--no-sandbox"
# - "--disable-dev-shm-usage"
# - "--log-path=/tmp/chromedriver.log"
# - "--verbose"
# - "--whitelisted-ips="
traefik:
image: traefik:v2.0
container_name: "${PROJECT_NAME}_traefik"
command: --api.insecure=true --providers.docker
ports:
- "${PROJECT_PORT}:80"
# - '8080:8080' # Dashboard
volumes:
- /var/run/docker.sock:/var/run/docker.sock
#x-mutagen:
# sync:
# defaults:
# ignore:
# vcs: true
# paths:
# - .DS_Store
# - .history
# - .idea
# drupal:
# alpha: "."
# beta: "volume://drupal"
# configurationBeta:
# permissions:
# defaultFileMode: 0644
# defaultDirectoryMode: 0755
# defaultOwner: "id:501"
# defaultGroup: "id:20"
volumes:
codebase:
files:
db:
## For macOS users (Mutagen)
# drupal:
## For Xdebug profiler
# files:
Contents of your .env
### Documentation available at https://wodby.com/docs/stacks/drupal/local
### Changelog can be found at https://github.com/wodby/docker4drupal/releases
### Images tags format explained at https://github.com/wodby/docker4drupal#images-tags
### PROJECT SETTINGS
PROJECT_NAME=my_drupal10_project
PROJECT_BASE_URL=drupal.docker.localhost
PROJECT_PORT=8000
DB_NAME=drupal
DB_USER=drupal
DB_PASSWORD=drupal
DB_ROOT_PASSWORD=password
DB_HOST=mariadb
DB_PORT=3306
DB_DRIVER=mysql
### --- MARIADB ----
MARIADB_TAG=10.11-3.26.3
#MARIADB_TAG=11.0-3.26.3
#MARIADB_TAG=10.10-3.26.3
#MARIADB_TAG=10.9-3.26.3
#MARIADB_TAG=10.6-3.26.3
#MARIADB_TAG=10.5-3.26.3
#MARIADB_TAG=10.4-3.26.3
### --- VANILLA DRUPAL ----
DRUPAL_TAG=10-4.58.0
#DRUPAL_TAG=9-4.58.0
#DRUPAL_TAG=7-4.58.0
### --- PHP ----
# Linux (uid 1000 gid 1000)
PHP_TAG=8.2-dev-4.47.0
#PHP_TAG=8.1-dev-4.47.0
#PHP_TAG=8.0-dev-4.47.0
# macOS (uid 501 gid 20)
#PHP_TAG=8.2-dev-macos-4.47.0
#PHP_TAG=8.1-dev-macos-4.47.0
#PHP_TAG=8.0-dev-macos-4.47.0
### --- NGINX ----
NGINX_TAG=1.25-5.33.4
#NGINX_TAG=1.24-5.33.4
#NGINX_TAG=1.25-5.33.4
NGINX_VHOST_PRESET=drupal10
#NGINX_VHOST_PRESET=drupal9
#NGINX_VHOST_PRESET=drupal8
#NGINX_VHOST_PRESET=drupal7
### --- SOLR ---
SOLR_TAG=8-4.18.2
#SOLR_TAG=7-4.18.2
#SOLR_TAG=6-4.18.2
#SOLR_TAG=5-4.18.2
SOLR_CONFIG_SET="search_api_solr_4.1.6"
#SOLR_CONFIG_SET="search_api_solr_4.0.1"
#SOLR_CONFIG_SET="search_api_solr_8.x-3.9"
#SOLR_CONFIG_SET="search_api_solr_8.x-3.2"
#SOLR_CONFIG_SET="search_api_solr_8.x-2.7"
#SOLR_CONFIG_SET="search_api_solr_8.x-1.2"
#SOLR_CONFIG_SET="search_api_solr_7.x-1.14"
### --- ELASTICSEARCH ---
ELASTICSEARCH_TAG=7-5.18.10
#ELASTICSEARCH_TAG=6-5.18.10
### --- KIBANA ---
KIBANA_TAG=7-5.18.10
#KIBANA_TAG=6-5.18.10
### --- REDIS ---
REDIS_TAG=7-4.1.3
#REDIS_TAG=6-4.1.3
#REDIS_TAG=5-4.1.3
### --- NODE ---
NODE_TAG=18-dev-1.24.2
#NODE_TAG=16-dev-1.24.2
#NODE_TAG=14-dev-1.24.2
### --- VARNISH ---
VARNISH_TAG=6.0-4.14.2
#VARNISH_TAG=4.1-4.14.2
### --- POSTGRESQL ----
POSTGRES_TAG=15-1.31.3
#POSTGRES_TAG=14-1.31.3
#POSTGRES_TAG=13-1.31.3
#POSTGRES_TAG=12-1.31.3
#POSTGRES_TAG=11-1.31.3
### OTHERS
ADMINER_TAG=4-3.24.4
APACHE_TAG=2.4-4.12.2
ATHENAPDF_TAG=2.16.0
DRUPAL_NODE_TAG=1.0-2.0.0
MEMCACHED_TAG=1-2.15.3
OPENSMTPD_TAG=6-1.18.2
RSYSLOG_TAG=latest
SELENIUM_CHROME_TAG=3.141
WEBGRIND_TAG=1-1.30.0
XHPROF_TAG=3.7.6
ZOOKEEPER_TAG=3.8```
Do you have any errors/warnings in xdebug logs in 3.2.x version when it's not working?
These errors are repeated in the log file
[102] Log opened at 2023-10-04 08:43:11.201497 [102] [Step Debug] INFO: Checking for client discovery headers: ''. [102] [Step Debug] INFO: Checking header ''. [102] [Step Debug] WARN: Could not discover client host through HTTP headers, connecting to configured a> [102] [Step Debug] WARN: Creating socket for 'host.docker.internal:9003', getaddrinfo: Resource temporar> [102] [Step Debug] ERR: Could not connect to debugging client. Tried: host.docker.internal:9003 (fallbac> [102] [Step Debug] INFO: Checking for client discovery headers: ''. [102] [Step Debug] INFO: Checking header ''. [102] [Step Debug] WARN: Could not discover client host through HTTP headers, connecting to configured a> [102] [Step Debug] WARN: Creating socket for 'host.docker.internal:9003', getaddrinfo: Resource temporar> [102] [Step Debug] ERR: Could not connect to debugging client. Tried: host.docker.internal:9003 (fallbac> [102] Log closed at 2023-10-04 08:43:11.353454
You're on Linux but have the following line
PHP_XDEBUG_CLIENT_HOST: host.docker.internal # Docker 18.03+ Mac/Win
you should comment it and uncomment:
# PHP_XDEBUG_CLIENT_HOST: 172.17.0.1 # Linux
Hello,
After some time of investigation, I found that I changed the ip ranges of the docker in the daemon.json file of the same so neither the solution of # PHP_XDEBUG_CLIENT_HOST: 172.17.0.1 # Linux
nor the one of PHP_XDEBUG_CLIENT_HOST: host.docker.internal # Docker 18.03+ Mac/Win
I have already put there the ip I configured in the daemon.json and I am already managing to debug.
Thank you very much for the help.