gpt4 book ai didi

php - IntelliJ,PhpStorm : Debugging with xdebug ignores XDEBUG_SESSION cookie

转载 作者:可可西里 更新时间:2023-10-31 22:49:22 26 4
gpt4 key购买 nike

我正在尝试使用 Intellij 中的 PHP 插件调试 Drupal 网站(在 PhpStorm 中也是如此)。

我有以下设置:

Chrome 浏览器指向本地主机别名 mydomain.local XDebug Helper 扩展已安装并设置为调试。在 Cookie 下的开发人员工具中,我可以看到 XDEBUG_SESSION cookie 设置为 PHPSTORM。

我已经使用以下设置使用 xdebug 插件配置了 php:

xdebug.extended_info = 1
xdebug.idekey = "PHPSTORM"
xdebug.max_nesting_level = 500
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 0
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_mode = req
xdebug.remote_port = 9000

在 IntelliJ 中,我设置了一个指向 mydomain.local 的服务器在运行配置中,我正在使用该服务器并将 Ide Key 设置为 PHPSTORM .

现在的问题是:

如果我启用在 PHP 脚本的第一行中断,那么调试器会立即在 index.php 内的第一个可中断位置中断.如果我禁用该选项,我会收到一条警告,指出没有命中断点,即使我设置了断点并且我确定代码正在执行。我看到的警告如下所示:

Debug session was finished without being paused
It may be caused by path mappings misconfiguration or not synchronized
local and remote projects.
To figure out the problem check path mappings configuration for
'mydomain.local' server at PHP|Servers or enable Break at first line in
PHP scripts option (from Run menu).

现在,如果我明确使用附加了以下查询参数的 URL:?XDEBUG_SESSION_START=PHPSTORM然后我所有的断点都在 IntelliJ 中被正确地打破了。

问题为什么XDEBUG_SESSION cookie 被忽略了?

更新: 添加了我从 php -v 输出的 PHP 和 XDebug 版本:

PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.8-0ubuntu0.16.04.3, Copyright (c) 1999-2016,
by Zend Technologies
with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans

和我的 Apache 虚拟主机配置:

<VirtualHost *:80>
DocumentRoot /var/www/html/mydomain
ServerName mydomain.local
<Directory /var/www/html/mydomain>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/mydomain.log
</VirtualHost>

更新 2:我安装了一个名为 fpm 的 php 扩展.我不太确定为什么安装它或者我是否需要它。我认为它是随 php 自动安装的。这会造成干扰吗?

最佳答案

当我“过度配置”我的设置时,我曾经遇到过这个问题。

  1. 您可能想尝试添加 XDebug helper extension Chrome
  2. 添加后转到插件的设置并选择 PhpStorm:

XDebug Helper Settings

  1. 尝试将您的 xdebug 配置精简为以下值:

(在我的盒子上工作)

zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_port=9000
  1. PhpStorm 配置应包含调试端口 9000 和 [X] 可以接受外部连接:

PhpStorm Xdebug Settings

  1. 然后您应该在 PhpStorm 中监听调试连接:

PhpStorm Debug Listening

  1. 同时在浏览器中启用调试(通过 xdebug 助手):

Xdebug helper Debug

  1. 如果错误图标为绿色 xdebug helper debugging on , 那么如果你刷新页面,你应该可以继续了,PhpStorm 应该在第一个断点处停止。

关于php - IntelliJ,PhpStorm : Debugging with xdebug ignores XDEBUG_SESSION cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40323518/

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