数据库类型和版本 / 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
数据库类型和版本 / 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
支持信息 / Support information
DBX 版本/Version: v0.5.52
运行环境/Runtime: Desktop
操作系统/OS: win64
系统架构/Architecture: x64
补充信息 / Additional information
No response