Skip to content

dbx_tunnel.php — HTTP 隧道在 CGI/FastCGI 共享主机不可用 #11154

Description

@303562915

数据库类型和版本 / Database type and version

mysql 通用

问题描述 / Description / Problem description

dbx_tunnel.php 的 HTTP 隧道依赖服务端存在一个跨多次 HTTP 请求存活的 worker 进程,该进程通过 fastcgi_finish_request()(PHP-FPM 场景)或 popen() / proc_open()(CLI 场景)维持。

我的主机只提供 CGI/FastCGI,且相关函数全部不可用:
PHP 版本:7.4.33
SAPI:cgi-fcgi
PHP 二进制:php-cgi
fastcgi_finish_request:false
popen:disabled
proc_open:disabled
exec:disabled
worker 随 HTTP 请求结束被销毁,客户端因此报错:

Input/output error: connection closed
同一主机上 Navicat 兼容的 ntunnel_mysql.php 可正常工作,因为它在 单次 HTTP 请求内 完成 mysqli_connect() 与 SQL 执行,不依赖持久进程。

错误信息 / Error message

期望方案 / Proposed solution
增加 preflight 能力检查:在 dbx_tunnel.php 入口检测 fastcgi_finish_request、popen、proc_open 是否可用,不可用时直接返回明确的错误码与说明,而不是让客户端只看到连接断开。
改进客户端错误提示:当服务端返回非 200 或结构化错误时,把 HTTP 响应体一并展示,便于定位。
补充文档:明确说明「无 PHP-FPM 且无进程派生函数的 CGI/FastCGI 共享主机」不受支持。
评估 MySQL-only 的 SQL 级 HTTP 隧道适配器:参考 ntunnel_mysql.php 的方式,在同一请求内完成连接与查询,作为 TCP 隧道之外的可选方案

支持信息 / Support information

DBX 版本/Version: v0.5.52
运行环境/Runtime: Desktop
操作系统/OS: win64
系统架构/Architecture: x64

补充信息 / Additional information

No response

Activity

  1. dbx-bot commented on Oct 7, 2026

    @dbx-bot

    以下 Issue 可能与当前问题相关:

    这些结果由机器人自动检索,尚未确认重复。如属于同一问题,建议在已有 Issue 中补充信息。

  2. 303562915 commented on Oct 7, 2026

    @303562915
    Author

    是同一问题 烦请解决

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions