gpt4 book ai didi

symfony - 使用 PhpStorm 和 Xdebug 在 Docker 中调试 Symfony2

转载 作者:行者123 更新时间:2023-12-05 00:54:51 25 4
gpt4 key购买 nike

我正在尝试按照本教程使用 PhpStorm 调试 Symfony 应用程序:
https://gist.github.com/chadrien/c90927ec2d160ffea9c4

我做的完全一样,但效果不佳。

php-fpm:
build: ./php
container_name: php-fpm-symfony
links:
- db
ports:
- 9000:9000
- 8448:8448
- 8000:8000
working_dir: /var/www/html/
volumes:
- ../:/var/www/html
volumes_from:
- data
tty: true
env_file:
- ./docker.env
environment:
XDEBUG_CONFIG: remote_host=192.168.0.176

文件
# XDEBUG
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini

当我使用 PhpStorm 启动调试时,连接似乎正在发生。我的浏览器中弹出一个新窗口。我的 Symfony 主页在这里。
但它并没有停在我的断点上。而且分步调试是不行的。

我做错什么了吗?

最佳答案

用 docker-for-mac 暴露 9000 是错误的——你搞错了方向。

IDE PHPstorm 监听 9000 端口,这意味着它在这个 9000 上打开了一个套接字,它没有连接到这个端口。

另一方面,xdebug 连接、附加到通常是 localhost 的端口 9000 - 如果它找到监听器,它们就会说话。这个,因为 9000 上没有服务,转发端口不仅没有意义,它实际上甚至伤害了你,因为端口 9000 将被 OSX 主机 localhost 占用,你的 PHPstorm 将不再能够监听它。

你想做的是

  • 删除 '9000:9000'
  • 使用此配置 https://gist.github.com/EugenMayer/3019516e5a3b3a01b6eac88190327e7c
    a) 为您的 OSX 本地主机环回设备创建一个别名
    b) 将您的 FPM xdebug 配置为 connect_back 到此 ip
  • 现在,非常简单,只需按下此按钮 https://drive.google.com/file/d/0B3SrxyqujSqxeFZoMmdrbDB6SzQ/view所以它上面没有这个“红色图标”,但它全是绿色的。
    4) 现在使用您的浏览器,像往常一样使用 xdebug 插件,如 https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc或 Firefox 替代品,因为您真的不想在 xdebug 配置中使用“自动启动”,正如我想的

  • 就是这样,它是
  • 由于环回设备别名
  • 可移植到其他开发设备
  • 您不需要配置调试环境,而是使用快速调试,这几乎在所有情况下都更方便
  • 关于symfony - 使用 PhpStorm 和 Xdebug 在 Docker 中调试 Symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39104108/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com