繁体   English   中英

如何在WSL上使用Xdebug + PhpStorm调试Symfony 4?

[英]How to debug Symfony 4 with Xdebug + PhpStorm on WSL?

我在Windows Linux子系统(WSL)上安装了PHP7.1 + nginx。
我提到WSL,所以在PhpStorm Xdebug中配置为远程调试器,它通过端口9000连接。仍然使用相同的物理文件WSL和PhpStorm。

对于Symfony 4项目,我使用它内置的web-server: bin/console server:run

我设法建立PhpStorm以接受Xdebug连接。 建立连接后,它会询问或提交映射。 我希望得到index.php ,但请求的文件映射是: vendor/symfony/web-server-bundle/Resources/router.php

正如在该文件中的文档中所述 - 该文件实现了PHP内置Web服务器的重写规则。 好的。

如果我接受映射到这个文件 - 调试从router.php开始进一步,而不是没有其他事情发生。 它不会跳转到我的public/index.php或者不会在任何断点上停止。

问题是 - 如何使用Xdebug配置Symfony 4调试? 也许是映射还是什么问题?

通过https://www.jetbrains.com/help/phpstorm/override-server-path-mappings-dialog.html ,您应该扩展文件映射。 可能使用router.php ,因为它是第一个可以找到的入口点 - 但是通过第一个文件,您可以看到WSL使用的文件结构。

所以:打开映射对话框应该给你router.php在结构的某个地方有一个映射路径,它也位于更深的目录中。 如果为根文件夹添加映射的映射与用于router.php映射相同,删除vendor/symfony/web-server-bundle/Resources/router.php ,则应该完成

我经历了一个非常类似的问题,似乎在初始中断(第一行脚本)之后,xdebug无法继续遍历代码。

PhpStorm 2017.3,Mojave 10.14,Symfony 4.2,Xdebug 2.7.1

尝试将PhpStorm升级到2018.3 - 这对我来说是不同的。

您必须首先在WSL上重新安装ssh:

sudo apt remove openssh-server
sudo apt install openssh-server

编辑/ etc / ssh / sshd_config ,将PasswordAuthentication更改为yes并将您的登录用户添加到文件的底部: AllowUsers yourusername

保存更改并重新启动ssh:

sudo service ssh --full-restart

更多信息: https//www.illuminiastudios.com/dev-diaries/ssh-on-windows-subsystem-for-linux/

最后在PhpStorm中设置远程调试配置: http//blog.spameri.cz/2017/04/20/phpstorm-wsl-php.html

请记住设置正确的目录映射。 对于PhpStorm,您的文件位于C:/ ProjectsDir / MyProject,但对于xdebug,它是/ mnt / c / ProjectsDir / MyProject

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM