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

时间:2017-12-10 01:03:11

标签: php symfony phpstorm xdebug symfony4

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

对于Symfony 4项目,我正在使用它内置的web服务器: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调试? 也许是映射还是什么问题?

3 个答案:

答案 0 :(得分:0)

通过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,您应该完成

答案 1 :(得分:0)

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

PhpStorm 2017.3, 莫哈韦10.14, Symfony 4.2, Xdebug 2.7.1

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

答案 2 :(得分:0)

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

mydb

编辑 / etc / ssh / sshd_config ,将 PasswordAuthentication 更改为 yes ,然后将登录用户添加到文件底部:允许用户使用您的用户名

保存更改并重新启动ssh:

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

此处有更多信息: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