Home > Software design >  Xdebug for docker not connecting
Xdebug for docker not connecting

Time:12-09

I am working on setting up Xdebug on Docker using this course- enter image description here

It is enabled here- enter image description here

Here are what my settings on PHPStorm look like- enter image description here

Here is what the Run/Debug configuration looks like- enter image description here

Here is all of my php information- enter image description here

This is to show I did not forget the breakpoint- enter image description here

What am I missing?

Edit:Xdebug Config enter image description here

enter image description here

Edit: In Text Form- xdebug

Version => 3.1.2
Support Xdebug on Patreon, GitHub, or as a business: 
https://xdebug.org/support

         Enabled Features (through 'xdebug.mode' setting)             
Feature => Enabled/Disabled
Development Helpers => ✘ disabled
Coverage => ✘ disabled
GC Stats => ✘ disabled
Profiler => ✘ disabled
Step Debugger => ✘ disabled
Tracing => ✘ disabled

                        Optional Features                            
Compressed File Support => yes (gzip)
Clock Source => clock_gettime

Directive => Local Value => Master Value
xdebug.auto_trace => (setting renamed in Xdebug 3) => (setting 
renamed in Xdebug 3)
xdebug.cli_color => 0 => 0
xdebug.client_discovery_header => no value => no value
xdebug.client_host => host.docker.internal => 
host.docker.internal
xdebug.client_port => 9003 => 9003
xdebug.cloud_id => no value => no value
xdebug.collect_assignments => Off => Off
xdebug.collect_includes => (setting removed in Xdebug 3) => 
(setting removed in Xdebug 3)
xdebug.collect_params => (setting removed in Xdebug 3) => 
(setting removed in Xdebug 3)
xdebug.collect_return => Off => Off
xdebug.collect_vars => (setting removed in Xdebug 3) => 
(setting removed in Xdebug 3)
xdebug.connect_timeout_ms => 200 => 200
xdebug.coverage_enable => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.default_enable => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.discover_client_host => Off => Off
xdebug.dump.COOKIE => no value => no value
xdebug.dump.ENV => no value => no value
xdebug.dump.FILES => no value => no value
xdebug.dump.GET => no value => no value
xdebug.dump.POST => no value => no value
xdebug.dump.REQUEST => no value => no value
xdebug.dump.SERVER => no value => no value
xdebug.dump.SESSION => no value => no value
xdebug.dump_globals => On => On
xdebug.dump_once => On => On
xdebug.dump_undefined => Off => Off
xdebug.file_link_format => no value => no value
xdebug.filename_format => no value => no value
xdebug.force_display_errors => Off => Off
xdebug.force_error_reporting => 0 => 0
xdebug.gc_stats_enable => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.gc_stats_output_dir => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.gc_stats_output_name => gcstats.%p => gcstats.%p
xdebug.halt_level => 0 => 0
xdebug.idekey => PHPSTORM => PHPSTORM
xdebug.log => no value => no value
xdebug.log_level => 7 => 7
xdebug.max_nesting_level => 256 => 256
xdebug.max_stack_frames => -1 => -1
xdebug.mode => no value => no value
xdebug.output_dir => /tmp => /tmp
xdebug.overload_var_dump => (setting removed in Xdebug 3) => 
(setting removed in Xdebug 3)
xdebug.profiler_append => Off => Off
xdebug.profiler_enable => (setting renamed in Xdebug 3) => 
 (setting renamed in Xdebug 3)
xdebug.profiler_enable_trigger => (setting renamed in Xdebug 3) 
=> (setting renamed in Xdebug 3)
xdebug.profiler_enable_trigger_value => (setting renamed in 
Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.profiler_output_dir => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.profiler_output_name => cachegrind.out.%p => 
cachegrind.out.%p
xdebug.remote_autostart => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.remote_connect_back => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.remote_enable => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.remote_host => (setting renamed in Xdebug 3) => (setting 
renamed in Xdebug 3)
xdebug.remote_log => (setting renamed in Xdebug 3) => (setting 
renamed in Xdebug 3)
xdebug.remote_log_level => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.remote_mode => (setting renamed in Xdebug 3) => (setting 
renamed in Xdebug 3)
xdebug.remote_port => (setting renamed in Xdebug 3) => (setting 
renamed in Xdebug 3)
xdebug.remote_timeout => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.scream => Off => Off
xdebug.show_error_trace => Off => Off
xdebug.show_exception_trace => Off => Off
xdebug.show_local_vars => Off => Off
xdebug.show_mem_delta => (setting removed in Xdebug 3) => 
 (setting removed in Xdebug 3)
 xdebug.start_upon_error => default => default
 xdebug.start_with_request => default => default
xdebug.trace_enable_trigger => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.trace_enable_trigger_value => (setting renamed in Xdebug 
3) => (setting renamed in Xdebug 3)
xdebug.trace_format => 0 => 0
xdebug.trace_options => 0 => 0
xdebug.trace_output_dir => (setting renamed in Xdebug 3) => 
(setting renamed in Xdebug 3)
xdebug.trace_output_name => trace.%c => trace.%c
xdebug.trigger_value => no value => no value
xdebug.use_compression => 1 => 1
xdebug.var_display_max_children => 128 => 128
xdebug.var_display_max_data => 512 => 512
xdebug.var_display_max_depth => 3 => 3

What it looks like when I try and validate- enter image description here

CodePudding user response:

Since you are on Linux/Ubuntu, it's possible the host.docker.internal host entry isn't set up on your local machine, which means Xdebug wouldn't be able to see Docker as a server to connect to.

This should be able to be resolved by adding an entry to your local machine's /etc/hosts file containing the value of your Docker network IP.

You can retrieve the Docker network IP by running:

docker network inspect bridge --format='{{(index .IPAM.Config 0).Gateway}}'

Then, assuming that value is 172.17.0.1, you can add the entry to /etc/hosts like so:

172.17.0.1 host.docker.internal

This binds the host.docker.internal hostname to your Docker daemon, so now Xdebug would be able to connect to it.

CodePudding user response:

While I can't exactly say what is the problem, I suggest making these changes:

  • Make sure the Run menu has this menu item: Stop listening for PHP debug connections.
  • Remove the Filter debug connection by IDE key configuration. The IDE key is somewhat useful if you have multiple websites that need to go to different environments, but I'm guessing that's not an issue for you.
  • Enable Break at first line in PHP scripts.

There might be a couple of additional ideas in the troubleshooting section here.

  • Related