【发布时间】:2021-04-09 09:41:44
【问题描述】:
我正在尝试使用 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
我有以下 PhpStorm 配置:
我使用 Chrome 的 Xdebug Helper 插件来发送会话密钥
在phpinfo() 中,我可以看到 PHP 收到了 Xdebug 会话密钥:
我正在 PhpStorm 中监听 Xdebug 连接(在整个代码中都有断点):
我在启用了 Xdebug Helper 的浏览器中运行应用程序。
然而。断点不会出现阻塞,也不会回调 PhpStorm。
【问题讨论】:
-
1) 您的 Xdebug 版本是多少?一个屏幕截图(phpinfo)显示为 2.x,而 PhpStorm(最后一个屏幕截图)显示为 3.0.1。三重检查(以防万一:CLI 和 Web 服务器可能使用不同的 php.ini;确保使用正确的 URL 等) 2)共享通过浏览器捕获的
phpinfo()输出的整个 Xdebug 部分 3)启用 Xdebug 日志,尝试调试和共享生成的日志。 P.S. 是的,您不需要 DBGp 代理(您的设置根本不需要它......而且我非常怀疑您是否安装了所需的代理软件) -
我建议在您的实际项目中创建一些新端点(我假设它服务于实际网页),而不仅仅是自定义“test.php”脚本并在那里调用
phpinfo()——这是为了确保它肯定由正确的服务器提供服务(检查您的 ENV 变量以确保这一点)。我这么说的原因是:Xdebug v3 使用 不同 配置参数而不是 v2。 v2 中的所有重要配置参数在 v3 中 nothing。
标签: php windows docker phpstorm xdebug