【问题标题】:Debug PHP script with Xdebug inside docker container on PhpStorm IDE在 PhpStorm IDE 的 docker 容器中使用 Xdebug 调试 PHP 脚本
【发布时间】:2021-08-13 22:13:34
【问题描述】:

Xdebug 被配置为在 docker 和浏览器上工作。 但是执行 CLI PHP 脚本时 Xdebug 没有启动。

我在这里缺少什么?如何为客户端php启用调试器?

docker-php-ext-xdebug.ini

zend_extension=xdebug
xdebug.mode=debug
xdebug.profiler_enable=1
xdebug.start_with_request=trigger
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9003
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
xdebug.discover_client_host=1
xdebug.output_dir = "/tmp"
xdebug.idekey=PHPSTORM

PHP 版本信息

PHP 7.4.22 (cli) (built: Jul 30 2021 01:30:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.22, Copyright (c), by Zend Technologies
    with Xdebug v3.0.4, Copyright (c) 2002-2021, by Derick Rethans

【问题讨论】:

  • 请说明您的 PHP 和最重要的 Xdebug 版本。
  • 问题是:您的 xdebug 配置似乎使用 Xdebug v2 参数以及 Xdebug v3。但并非所有 v2 参数都有 v3 变体。如果您的 Xdebug 是 v3(很可能),则通过 xdebug.org/docs/upgrade_guide,更新您的配置并仅保留 v3 参数。

标签: php docker command-line-interface phpstorm xdebug


【解决方案1】:

为了从终端触发 Xdebug 断点,我需要在执行脚本之前导出一些变量。

https://www.jetbrains.com/help/phpstorm/2021.2/zero-configuration-debugging-cli.html

这个命令对我有用:

php -dxdebug.mode=debug -dxdebug.client_host=127.0.0.1 -dxdebug.client_port=9003 -dxdebug.start_with_request=yes index.php

【讨论】:

  • 您不需要在此处设置 client_host 或 client_port,因为它们是默认值。
猜你喜欢
  • 2016-12-30
  • 2017-11-01
  • 2020-06-24
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
相关资源
最近更新 更多