5

我在 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多行开始,然后什么都没有发生。它不会跳转到 mypublic/index.php或不会在任何断点处停止。

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

4

3 回答 3

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

于 2017-12-10T11:35:06.743 回答
0

您必须先在 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

于 2019-04-24T08:47:34.793 回答
0

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

PhpStorm 2017.3、Mojave 10.14、Symfony 4.2、Xdebug 2.7.1

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

于 2019-04-22T12:41:12.583 回答