xdebug跨平台调试要求linux服务器安装并启用xdebug作为服务端,windows仅需配置ide监听对应端口并设置精准路径映射,无需安装xdebug扩展;xdebug 3使用xdebug.mode=debug、xdebug.client_host和xdebug.client_port=9003等简化配置,配合防火墙放行与telnet连通性验证确保调试链路畅通。

Xdebug本身不跨平台运行,但可以跨平台协同调试——即在Windows上开发、连接Linux服务器上的PHP环境进行远程调试。关键不是“Xdebug在两边都装”,而是让Windows作为IDE端(客户端),Linux作为PHP执行端(服务端),通过DBGP协议通信。整个过程依赖配置对齐、网络可达和路径映射,而非Xdebug模块在两端同时启用。
明确角色分工:谁装Xdebug、谁连谁
Linux服务器必须安装并启用Xdebug(作为调试服务端),Windows只需装支持DBGP的IDE(如PhpStorm、VS Code)或浏览器插件(如Xdebug Helper),无需安装Xdebug扩展。常见误区是试图在Windows上也配Xdebug来“调试本地PHP”,这与跨平台调试目标无关。
- Linux端:编译安装或启用已有的xdebug.so,确保
xdebug.remote_enable=1(旧版)或xdebug.mode=debug(Xdebug 3+),并设xdebug.client_host为Windows机器IP - Windows端:仅需配置IDE监听9003端口(Xdebug 3默认)、设置项目根目录与Linux服务器路径映射(Path Mapping)
- 禁用Windows本地PHP的Xdebug扩展,避免端口冲突或误触发
Linux端Xdebug配置要点(以Xdebug 3为例)
Xdebug 3大幅简化了配置项。确认php.ini中包含以下最小必要设置:
-
zend_extension=xdebug.so(路径需绝对,如/usr/lib/php/20210902/xdebug.so) -
xdebug.mode=debug(启用调试模式,不再用remote_enable) -
xdebug.client_host=192.168.1.100(填Windows主机真实局域网IP) -
xdebug.client_port=9003(Xdebug 3默认端口,与IDE保持一致) -
xdebug.log=/var/log/xdebug.log(开启日志便于排查连接失败)
重启PHP-FPM或Apache后,运行php -v | grep xdebug验证加载,再检查phpinfo()页面是否显示Xdebug版本及配置项。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
Windows端IDE路径映射必须精准
Linux服务器文件路径(如/var/www/html/project)与Windows本地项目路径(如D:\projects\myapp)必须一一对应,否则断点不命中。PhpStorm中在Settings → PHP → Servers里添加服务器配置,手动绑定远程路径到本地目录;VS Code则在.vscode/launch.json中配置pathMappings:
"pathMappings": {
"/var/www/html/project": "${workspaceFolder}"
}
注意:路径分隔符统一用正斜杠,Windows本地路径也写成D:/projects/myapp格式,避免反斜杠转义问题。
防火墙与网络连通性检查
Windows防火墙默认会拦截入站9003端口,需手动放行:
- 打开“高级安全Windows Defender防火墙”→“入站规则”→新建规则→端口→TCP 9003→允许连接→应用到所有配置文件
- Linux端确认iptables或ufw未屏蔽出站连接(通常无需额外开放,因是Linux主动连Windows)
- 用
telnet 192.168.1.100 9003从Linux服务器测试能否连通Windows,不通则检查IP、防火墙、Wi-Fi隔离或虚拟机网络模式(推荐桥接或NAT+端口转发)










