[英]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.