【发布时间】:2017-12-04 16:12:22
【问题描述】:
设置;
- Windows 操作系统(好吧,我必须这样做)
- WAMP 作为服务器
- IDE 的 VS 代码
- 浏览器谷歌浏览器
一切正常,除了...其他“本地主机”站点)
此时,一切似乎都只是锁定并停止工作。我知道这是因为 xdebug 在“其他”网站上捕获警告/错误等。单击“调用堆栈”并单击“继续”按钮并不总是(很少)保持进展。
如何设置 vs code/xdebug 只监控一个网站?
我的主要网络应用程序在http://reqapp.dev[本地] 提供服务
我的 phpMyAdmin 位于 http://wamp/phpmyadmin/
和其他网站在http://localhost/path/to/website/
我在 Aptana Studio 中做同样的事情(实际上是相同的开发环境)从来没有遇到过问题,但它会“启动”网站进行调试,而且我认为它使用了一个特殊的端口。我不知道如何用 VS Code 复制它。
编辑:
大多数网站都被定义为虚拟主机
httpd-vhosts.conf
<VirtualHost *:80>
ServerName localhost
DocumentRoot c:/Users/chadmeyers/Sites
<Directory "c:/Users/chadmeyers/Sites">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName wamp
DocumentRoot "c:/wamp64/www"
<Directory "c:/wamp64/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName reqApp.dev
DocumentRoot "c:/users/chadmeyers/sites/aaappdev/public_html"
<Directory "c:/users/chadmeyers/sites/aaappdev/public_html/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
还有 php.ini
[xdebug]
zend_extension ="c:\wamp64\bin\php\php7.0.10\ext\php_xdebug-2.5.5-7.0-vc14-x86_64.dll"
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.profiler_enable = On
xdebug.profiler_enable_trigger = On
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="c:/wamp64/tmp"
xdebug.show_local_vars=0
xdebug.var_display_max_depth = 5
xdebug.var_display_max_children = 256
xdebug.var_display_max_data = 1024
在 VS Code PHP Debug 中我有这些设置,但我使用哪个“配置文件”没有区别
"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
},
{
"name": "debug FRAaap",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "C:\\Users\\chadmeyers\\Sites\\aaAppDev\\public_html\\",
"port": 9000
}
]
}
【问题讨论】:
-
Xdebug 设置? WAMP 中的站点是如何定义的?作为虚拟主机(所以每个人都使用自己的域名)还是什么?如果您使用 cookie/query 参数来启动调试会话,那么它不应该影响其他站点(因为它应该是每个域)。但也许你启用了
xdebug.remote_autostart——在这种情况下,xdebug 将尝试调试每个脚本。至于锁定的可能原因 - xdebug 可能正在启动另一个调试会话,而 VS Code 一次可能支持不超过一个......所以它会坐下来等待当前一个调试会话完成。 -
你得到它是为了锁定。我将发布我的 xdebug 设置
-
嗯..你有
xdebug.remote_autostart = On。 Xdebug 本身将尝试调试每个域上的每个请求(即使在 CLI 模式下——在控制台/终端中)。禁用该选项并以另一种方式传递“调试我”标志(cookie(查找 xdebug 浏览器扩展)或 GET/POST 参数(IDE/编辑器应在调试时将其添加到请求的 URL_)。P.S.如果您需要更多1 个同时调试会话 - 尝试 PhpStorm(它可以这样做,在从默认值 1 手动增加限制之后)。它还可以忽略来自另一个(尚未配置)域的请求。虽然它是付费软件 -
使用 XAMPP 试试这个:gist.github.com/odan/1abe76d373a9cbb15bed
标签: php visual-studio-code xdebug