我在 Windows Linux 子系统 (WSL) 上安装了 PHP7.1 + nginx。
我提到的是 WSL,因此在 PhpStorm 中 Xdebug 被配置为远程调试器,它通过端口 9000 连接。WSL 和 PhpStorm 仍然使用相同的物理文件。
对于 Symfony 4 项目,我正在使用它内置的网络服务器: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
,你应该完成了
关于php - 如何在 WSL 上使用 Xdebug + PhpStorm 调试 Symfony 4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47734877/