gpt4 book ai didi

php - 在 Windows 上将 Xdebug 和 PhpStorm 与 Docker 容器一起使用

转载 作者:行者123 更新时间:2023-12-04 12:35:24 25 4
gpt4 key购买 nike

我正在尝试使用 PhpStorm 使 Xdebug 为 Windows 上的 Docker 容器工作。我阅读了不同的文章和其他线程,但仍然无法正常工作。
在 docker-compose.yaml 中,我的应用程序容器有以下配置:

version: "3.7"
services:

#PHP Service
app:
build:
args:
user: user
uid: 1000
context: ./
dockerfile: docker/php/Dockerfile
image: rpg
container_name: rpg-app
restart: unless-stopped
tty: true
environment:
SERVICE_NAME: app
SERVICE_TAGS: dev
PHP_IDE_CONFIG: serverName=RpgServer
working_dir: /var/www
command: /var/www/docker/php/application-init.sh
volumes:
- ./:/var/www
- ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- rpg-app-network
depends_on:
- db

...

#Nginx Service
nginx:
image: nginx:1.17-alpine
container_name: rpg-nginx
restart: unless-stopped
tty: true
ports:
- "8080:80"
- "443:443"
volumes:
- ./:/var/www
- ./docker/nginx/conf.d/:/etc/nginx/conf.d/
networks:
- rpg-app-network
depends_on:
- app
enter image description here
使用 phpinfo()我得到以下php配置:
enter image description here
enter image description here
enter image description here
我有以下 PhpStorm 配置:
服务器
enter image description here
调试
enter image description here
DBGp 代理(并不真正认为相关)
enter image description here
和 PHP 远程调试
enter image description here
我使用 Chrome 的 Xdebug Helper 插件发送 session key
enter image description here
而在 phpinfo()我可以看到 PHP 收到了 Xdebug session key :
enter image description here
enter image description here
我在 PhpStorm 中监听 Xdebug 连接(在整个代码中带有断点):
enter image description here
enter image description here
我在启用 Xdebug Helper 的浏览器中运行该应用程序。
然而。没有您期望的断点阻塞,也没有对 PhpStorm 的回调。
如果我尝试在 PhpStorm 中使用调试器配置验证,我会得到以下信息:
enter image description here

最佳答案

感谢 LazyOne我再次查看了配置,发现 Step Debugger 已禁用。 enter image description here
我在我的 php-fpm Dockerfile 中以下列方式安装 Xdebug:

# Install xdebug
RUN pecl install xdebug && docker-php-ext-enable xdebug
这是我原来的 Xdebug 配置:
[xdebug]
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_connect_back=0
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9001
xdebug.idekey=PHPSTORM
xdebug.remote_log=/var/www/storage/logs/xdebug.log
xdebug.remote_mode = req
我加了
xdebug.mode = debug
重新运行后 docker-compose up我开始在容器日志中收到通知:
rpg-app  | NOTICE: PHP message: Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(
我找到了这个线程
Xdebug: [Step Debug] Could not connect to debugging client
并补充说:
xdebug.client_host=host.docker.internal
xdebug.client_port=9001
获得:
[xdebug]
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_connect_back=0
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9001
xdebug.idekey=PHPSTORM
xdebug.remote_log=/var/www/storage/logs/xdebug.log
xdebug.remote_mode = req
xdebug.mode = debug
xdebug.client_host=host.docker.internal
xdebug.client_port=9001
现在一切正常! :)
编辑:
关注 LazyOne 的 comment我更新到 Xdebug v3 配置设置。
结果是:
[xdebug]

xdebug.idekey=PHPSTORM

xdebug.mode = debug
xdebug.client_host=host.docker.internal
xdebug.client_port=9001

xdebug.log=/var/www/storage/logs/xdebug.logs

关于php - 在 Windows 上将 Xdebug 和 PhpStorm 与 Docker 容器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65548411/

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