如何连接 PhpStorm 和 Xdebug

我希望这里有人可以帮助我解决我的问题:

我最近进入了我的第一个 PHP 项目,需要设置调试。我知道很多人在我面前遇到过同样的问题,但我很难找到解决方案。

我需要使用 Xdebug 设置 PhpStorm,并且所有设置都使其仍然无法正常工作,当我开始调试会话时,我陷入了困境,没有更多信息:

http://img1.mukewang.com/644b90650001245706510184.jpg

这是我的项目设置:

带有 Xdebug 的 Docker Webapp:0.0.0.0:80->80/tcp,0.0.0.0:443->443/tcp

PhpStorm PHP 调试设置:

http://img.mukewang.com/644b9074000167dd06571007.jpg

Xdebug 设置来自phpinfo()

http://img4.mukewang.com/644b90880001af7706561022.jpg

在 PhpStorm 中侦听调试连接已开启,启动调试会话通过 GET 创建会话:https://localhost/?XDEBUG_SESSION_START=16957但我的所有断点都被忽略了。

试图获得更多信息我跑了netstat

http://img.mukewang.com/644b90930001cbfe06480289.jpg

谁能告诉我我在这里缺少什么?



holdtom
浏览 123回答 2
2回答

白衣染霜花

不要使用运行/调试配置进行 Web 调试,这会适得其反。您可以使用零配置调试直接从浏览器启动调试连接。禁用xdebug.remote_connect_back,弊大于利,尤其是 Docker。xdebug.remote_host不应该localhost在您使用 Docker 时出现,这样,容器会尝试将调试数据发送给自身而不是主机。看来您使用的是 macOS 和 Docker for Mac,host.docker.internal在这种情况下应该是正确的主机名。如果从浏览器启动调试会话后 PhpStorm 仍然无法捕获连接,我们将需要按照@LazyOne 的建议查看 Xdebug 日志。

噜噜哒

我使用了这个设置并且它有效:)xdebug.remote_port=9000xdebug.idekey=PHPSTORMxdebug.default_enable=1xdebug.remote_autostart=1xdebug.remote_enable=1xdebug.remote_handler=dbgpxdebug.profiler_enable=0xdebug.profiler_output_dir="/var/www/html"xdebug.var_display_max_depth=20xdebug.remote_host=host.docker.internalxdebug.remote_enable=1xdebug.remote_connect_back=0在 vscode 中使用 launch.json "name": "Listen 9000", "type": "php", "request": "launch", "log": true, "externalConsole": false, "pathMappings": {        "/var/www/html": "/Users/folder/project/src"     },  "port": 9000,使用 docker-compose.yml:
打开App,查看更多内容
随时随地看视频慕课网APP