gpt4 book ai didi

php - 当 php 应用程序位于 Varnish 后面时使用 Xdebug

转载 作者:可可西里 更新时间:2023-11-01 00:20:23 26 4
gpt4 key购买 nike

我正在尝试使用 PHPStorm 将 Xdebug 远程调试设置为位于 Varnish 后面的站点作为缓存层。

Varnish 在 80 端口上作为前端,Apache 在 8080 端口上作为后端与它对话。

如果我绕过 Varnish 并直接与端口 8080 上的站点对话 Xdebug 和 Phpstorm 按预期工作,那么我并没有真正正确地测试系统 - 我真正需要做的是即使在请求时触发调试 session 通过 Varnish 代理。

显然我不希望缓存的内容触发调试 session ,但未缓存的内容仍然应该。

我的Xdebug设置如下:

; xdebug
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.scream=0
xdebug.cli_color=1
xdebug.show_local_vars=1

最佳答案

自 2.2.0 以来,Xdebug 支持尝试连接回 X_HTTP_FORWARDED_FOR 中提供的 IP(修复了 2.2.2 中的错误),参见错误 #598 & #660 .根据您的 Varnish 版本,您可能必须添加 header ,或者它可能由 Varnish 为您设置。

如果您设置 header ,您的原始配置应该可以工作。

vcl_recv中加入:

if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}

关于php - 当 php 应用程序位于 Varnish 后面时使用 Xdebug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27594868/

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