Debugging with XDebug 3 and WSL2: PHP Script debugging is working normally but cannot debug web app Follow
I'm running Magento on WSL2 with Linux distro 20.04, and the phpstorm is running from window host
It is quite strange that the debugger is working normally when I run "php bin/magento c:c" or any command from magento:
But there aren't any connection coming when I try to set a break point and refresh the browser, I have also enabled the listening to php debug connection
Nothing happened, the page refresh and show up, no incoming debugging session was captured in phpstorm, even thought I have enabled the xdebug helper on chrome
The xdebug.log shows that the connection only opens when I execute the "php bin/magento c:c"
I have also tried to run chrome and phpstorm directly inside wsl2 through wsl2 GUI, but still get the same problem, no no incoming debugging session was captured in phpstorm, and nothing is printed in the logs.
xdebug config:
zend_extension = xdebug
[xdebug]
xdebug.log = "/home/phupq/www/xdebug.log"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host=0
xdebug.remote_connect_back=0
xdebug.client_host=172.31.192.1 #This is my wsl2 ip
xdebug.client_port=9009
xdebug.idekey="PHPSTORM"
xdebug.remote_handler="dbgp"
php -i | grep xdebug:
/etc/php/7.4/cli/conf.d/99-xdebug.ini
xdebug
Support Xdebug on Patreon, GitHub, or as a business: https://xdebug.org/support
Enabled Features (through 'xdebug.mode' setting)
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 => 172.31.192.1 => 172.31.192.1
xdebug.client_port => 9009 => 9009
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 => /home/phupq/www/xdebug.log => /home/phupq/www/xdebug.log
xdebug.log_level => 7 => 7
xdebug.max_nesting_level => 256 => 256
xdebug.max_stack_frames => -1 => -1
xdebug.mode => debug => debug
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 => yes => yes
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 => 0 => 0
xdebug.var_display_max_children => 128 => 128
xdebug.var_display_max_data => 512 => 512
xdebug.var_display_max_depth => 3 => 3
PHPstorm cli interpreters
phpstorm debug setting
So far I have tried:
- Changing the port, from 9003, to 9006 and now is 9009
- Change the xdebug.client_host to window IP address
- Run phpstorm directly inside wsl2 using gui and change the xdebug.client_host to localhost
Any help would be much appreciated!
System info:
PhpStorm 2022.3.1
Build #PS-223.8214.64, built on December 22, 2022
Licensed to phan quoc phu
Subscription is active until December 31, 2023.
For educational use only.
Runtime version: 17.0.5+1-b653.23 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 11 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 2024M
Cores: 12
Registry:
run.processes.with.pty=TRUE
Non-Bundled Plugins:
com.jadi (1.0-alpha2)
----------------------------------------------
Edit: Found the problem, it was because I setup the xdebug in php/cli/conf.d/20-xdebug.ini, so it won't work when I refresh the browser cause web app use PHP fpm
The solution is simple, just copy all the content from php/cli/conf.d/20-xdebug.ini to php/fpm/conf.d/20-xdebug.ini, save, then restart nginx/apache2 or whatever server you are using, and php-fpm of cause, and the debugger working normally
Please sign in to leave a comment.