我不知道是什么问题,它只是不工作。
路由似乎工作,我有一个服务器名称在我的nginx配置文件。e.g. test.com.这工作。
我的项目在ubuntu的根目录下,而不是挂载文件夹中。
我不知道还能尝试什么。
xdebug.ini
[XDebug]
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_port=9002
xdebug.remote_handler=dbgp
xdebug.remote_connect_back=0
xdebug.remote_host=soapboxtest.com
xdebug.idekey=VSCODE
xdebug.remote_autostart=1
xdebug.remote_log=/usr/local/etc/php/xdebug.log
launch.json
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9002,
"log": true,
"externalConsole": false,
"pathMappings": {
"/var/www": "${workspaceRoot}"
},
"ignore": [
"**/vendor/**/*.php"
]
},
请求Cookie
"XDEBUG_SESSION" => "VSCODE"
停靠文件
FROM php:fpm-alpine3.11
...
RUN pecl install xdebug
RUN docker-php-ext-enable xdebug
...
3条答案
按热度按时间7tofc5zh1#
这也发生在我身上,发现XDEBUG没有寻找Docker守护进程主机。通过添加以下内容修复了它:
作为VS Code上launch.json的常规选项的一部分。
完整示例:
pbgvytdp2#
在有一位同事帮助我配置Xdebug以从VSCode侦听WSL Remote环境之后,我查找了一个当您单击IDE左下方的WSL Remote图标时打开的选项:
远程WSL:显示日志
它打开了一个WSL终端,它显示(在几个信息之间)* WSL正在使用的IP地址 *。将此WSL IP添加到 xdebug.remote_host 值中,要使Xdebug从Docker容器在WSL 2环境(从WSL Remote VSCode扩展)中正确运行,剩下的唯一事情就是在 launch.json 文件中调整应用程序路径。
为此,用鼠标右键单击launch.json文件选项卡,搜索并单击“复制路径”选项,然后将其粘贴到pathMappings设置中,就像这个示例一样(不要忘记调整路径,删除相对于launch.json本身的信息,这是您的应用程序路径!):
试试看,对我来说效果很好。如果对你也有效,请投票支持我的答案!
ioekq8ef3#
我已经花了很多天“撕裂我的头发”..我使用 Docker 。
1.在防火墙中添加规则以允许流量(取自/引用自:https://github.com/microsoft/WSL/issues/4171#issuecomment-559961027
去那里截图,如果这是不够清楚)
1.在Windows开始菜单中,键入
Firewall
并选择Advanced settings
,然后选择Inbound Rules
1.选择自定义规则。
1.单击Next,直到在左侧菜单中找到
Protocol and Ports
1.选择ICMPv 4作为协议类型。
1.选择Next,直到进入
Name
部分,输入任意名称并单击Finish。如果您现在尝试从wsl 2 ping主机ip,它应该可以正常工作。
对于wsl 2和主机之间的每一个其他连接,您必须允许私有和公共网络的入站规则,或者如果它们不存在,则手动创建相应UDP/TCP端口的规则,但要注意,如果您在公共网络中使用计算机,这可能会影响您的安全性。
1.停靠文件
编辑:过了一段时间,我又开始有问题了。试试这些:
(取消注解xdebug.remote_host=...并注解掉xdebug.remote_autostart=on)
我的xdebug看起来已经连接了,但之后马上就关闭了连接,因为它必须是我的windows ip。我的理解是,它是VSCode,它响应在windows中运行的xdebug请求,所以调试包需要通过WSL 2。
pathMappings