Gar*_*yK4 6 php debugging xampp
我已经安装了VS Code和PHP调试器。
我正在使用xampp。
我尝试以两种方式(侦听和启动)运行代码。
听着坐在那里,而Launch 在调试控制台中显示spawn php ENOENT。
这是我的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
}
]
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Tar*_*ior 25
刚刚在 2021 年使用 xdebug (v3.x) 完成了它,有些步骤有所不同,所以我将引用更多详细信息:
在 PHP 上安装 xdebug 模块
运行一个 PHP 页面,调用“ phpinfo(); ”并复制输出内容(是的,您可以选择所有文本和Ctrl+ C)并粘贴到https://xdebug.org/wizard
xdebug.org 网站会告诉您正确下载的 xdebug 模块版本(例如:php_xdebug-3.0.4-7.4-vc15-x86_64.dll”),还会告诉您如何安装它,哪个目录和参考包含在 PHP.ini 中。
启用 xdebug 设置以调试模式并在 PHP.ini 上启用远程步骤调试器,如我使用的以下示例
Run Code Online (Sandbox Code Playgroud)[XDebug] xdebug.mode=debug xdebug.remote_enable=on xdebug.start_with_request=yes zend_extension = C:\xampp\php\ext\php_xdebug-3.0.4-7.4-vc15-x86_64.dll
您可能需要根据您的情况更改这些 xdebug 设置(例如使用另一个客户端端口),您可以看到运行“phpinfo()”的所有可能参数的列表。这个技巧将在您遇到问题时为您提供帮助,您还必须确保“单步调试器显示为已启用”,它还在与每个主题相关的右侧列上提供了链接。
因此,在之前的设置中,您可以检查主机和端口是否符合您将在 VS Code 上使用的预期。
设置您的 Visual Studio 代码
最后,在 VS Code 调试选项卡上,系统会要求您创建一个新的 launch.json 文件,只需单击它并选择 PHP。这里重要的一步是“ Listen for Xdebug ”项上的“configurations”部分,确保端口与之前 XDebug 上的 phpinfo() 报告中显示的端口相同。

如果出现错误或没有任何反应,请重点检查“phpinfo()”上显示的 XDebug 设置,以及“Listen for XDebug”部分中的“launch.json”,或者检查网络服务器 error.log 以获取可能的错误详细信息。
此致!
Elu*_*uny 12
刚刚完成:
我们拥有带Microsoft Visual Code的OS Windows,并且已经安装了“ PHP Debug ”模块https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug#overview使它正常工作的步骤已在此处撰写,但是我ll再写:
安装XDebug。在线向导https://xdebug.org/wizard.php可以帮助您,只需在此处发布phpinfo()数据即可。保存在phpinfo.php中:
<?php phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)然后在浏览器中打开localhost/phpinfo.php,将看到的所有内容(Ctrl+A然后Ctrl+C)复制到向导中。它显示您获得的信息和操作步骤:

打开说明php.ini中的内容(总是有很多php.ini-apache文件夹中有一个php.ini,php中有php.ini和phpForApache.ini。但是phpinfo清楚地表明了哪个是真正使用的)
2.1。并与配置它xdebug.remote_enable = 1和xdebug.remote_autostart = 1。我的工作示例:
[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
Run Code Online (Sandbox Code Playgroud)重新启动Apache2 Web服务器。
也:
出于某种原因,我首先让xdebug在Netbeans上进行测试,然后才xdebug.remote_autostart = 1在手册中找到使它也可以在VS Code中工作的选项。
如果不确定XDebug的安装,请检查phpinfo页面中的“ with Xdebug”字样,并检查logs/apache_errors.log“无法加载php_xdebug”(下载了错误的DDL)。然后与其他任何IDE一起检查。
好的问候!
对于今天寻找答案的任何人,对我来说,在php.ini[XDebug] 部分中帮助更改为:
xdebug.mode = debug
xdebug.start_with_request = yes
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.stopOnEntry = true
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = Off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.output_dir ="c:\xampp\tmp"
xdebug.show_local_vars=0
xdebug.remote_handler = "dbgp"
xdebug.client_host = "127.0.0.1"
xdebug.log = "C:\xampp\tmp\xdebug.txt"
xdebug.client_port = 9000
xdebug.remote_cookie_expire_time = 36000
Run Code Online (Sandbox Code Playgroud)
我使用了@Eluny 帖子中的设置,但是在一些较新版本的 XDebug 中,属性名称发生了变化。在文档页面上,您可以找到有关更改的信息
您只需在php.ini文件中进行这些更改即可。
对于 Xdebug v3.xx :(请注意,此版本中的端口号已更改为 9003)。
[XDebug]
xdebug.mode = 调试
xdebug.start_with_request = yes
对于 Xdebug v2.xx:
[XDebug]
xdebug.remote_enable = 1 xdebug.remote_autostart = 1
xdebug.remote_port = 9000
小智 5
在您的lunch.json 文件中添加以下行:
"runtimeExecutable": "c:\\xampp\\php\\php.exe"
{
"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,
"runtimeExecutable": "C:\\Program Files\\PHP\\v7.3\\php.exe"
}
]
}
Run Code Online (Sandbox Code Playgroud)
您是否检查过以确保防火墙允许端口 9000 上的入站连接?我在我的一台开发机器上遇到了这个问题。虽然所有其他设置都正确,但我无法达到断点。一旦我在防火墙中添加了例外,它就开始工作了。
因此,如果这就是您的设置的问题,您有两种选择来解决它。
假设您正确设置了配置的 Web 服务器部分,这应该允许您进行调试。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
9315 次 |
| 最近记录: |