问题
I have installed VS Code and the PHP debugger.
I am using xampp.
I tried running the code (2) ways (listen and launch).
Listen just sits there while Launch shows spawn php ENOENT in the debug console.
This is my launch.json.
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
What am I doing wrong?
回答1:
Made it just now:
We have OS Windows with Microsoft Visual Code and we have installed 'PHP Debug' module https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug#overview Steps to make it working already wroten here, but I'll write again:
Install XDebug. Online Wizard https://xdebug.org/wizard.php helps you, just post here phpinfo() data. Save in phpinfo.php this:
<?php phpinfo(); ?>
then open in browser localhost/phpinfo.php
, copy everything you see (Ctrl+A then Ctrl+C) to wizard. It shows you obtained info and steps to do:
Open shown in instruction php.ini (there are always many php.ini - apache folder has one php.ini, php has php.ini and phpForApache.ini. But phpinfo makes it clear showing which one is really used)
2.1. and configure it with
xdebug.remote_enable = 1
andxdebug.remote_autostart = 1
. My working example:[XDebug] zend_extension = "c:\wamp64\bin\php\php7.1.9\ext\php_xdebug-2.6.0beta1-7.1-vc14-x86_64.dll" xdebug.stopOnEntry = true xdebug.profiler_enable = off xdebug.profiler_enable_trigger = Off xdebug.profiler_output_name = cachegrind.out.%t.%p xdebug.profiler_output_dir ="c:/wamp64/tmp" xdebug.show_local_vars=0 ;xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "127.0.0.1" xdebug.remote_log = "C:\wamp64\tmp\xdebug.txt" xdebug.remote_port = 9000 xdebug.trace_output_dir = "C:\wamp64\tmp" xdebug.remote_cookie_expire_time = 36000
Restart Apache2 webserver.
Also:
For some reason I first got xdebug working on Netbeans for testing, and only then I found option xdebug.remote_autostart = 1
in manual that made it working in VS Code also.
If you are unsure about XDebug installation, check phpinfo page for "with Xdebug" words and check logs/apache_errors.log
for "failed loading php_xdebug" (incorrect DDL downloaded). Then check with any other IDE.
Good regards!
回答2:
Have you checked to make sure the firewall allows Inbound connections on Port 9000? I had this exact problem on one of my development machines. While all other settings were correct I wasn't able to hit the break points. Once I added an exception in the firewall it started working.
So if this is what the issue is with your setting, you have two options to fix it.
- Turn OFF your firewall completely, or at least temporarily while you work on your project.
- Add an exception to your Firewall settings:
- Go to your Windows Control Panel and type "Firewall".
- Select "Inbound Rules" from the left navigation, then click on "New Rule".
- Select "Port" then hit "Next".
- Make sure the "Specific local ports" option is selected and type "9000" for the port number.
- Select "Allow the connection" then hit "Next".
- Check "Domain", "Private" and "Public" then hit "Next".
- Enter a descriptive name like "XDebug Port", then hit "Finish".
- Restart Visual Studio Code, then try debugging again.
Assuming that you have the Web Server portion of the configuration setup correctly this should allow you to debug.
Hope this helps.
来源:https://stackoverflow.com/questions/43783482/visual-studio-code-php-debugging-not-working