首页主机资讯Ubuntu上PHPStorm如何进行远程调试

Ubuntu上PHPStorm如何进行远程调试

时间2025-12-01 14:49:04发布访客分类主机资讯浏览285
导读:Ubuntu上PHPStorm远程调试实操指南 一 场景与原理 常见场景包括:在本地 Ubuntu 上用 PHPStorm 调试运行在另一台服务器(或本机虚拟机/Docker)中的 PHP 代码。关键在于让远程 PHP 的 Xdebug...

Ubuntu上PHPStorm远程调试实操指南

一 场景与原理

  • 常见场景包括:在本地 Ubuntu 上用 PHPStorm 调试运行在另一台服务器(或本机虚拟机/Docker)中的 PHP 代码。关键在于让远程 PHP 的 Xdebug 能够连接到 PHPStorm 的调试端口(默认 9003),双方用 DBGp 协议通信。若远程服务器无法直连你的开发机,需借助 SSH 端口转发 打通通道。

二 方案一 远程服务器可直连开发机时的配置

  • 远程服务器安装 Xdebug(Ubuntu/Debian 示例)
    • 安装扩展:sudo apt-get update & & sudo apt-get install php-xdebug
    • 编辑对应 SAPI 的 php.ini(如 /etc/php/8.1/fpm/php.ini/etc/php/8.1/apache2/php.ini),在末尾加入:
      • [xdebug]
      • zend_extension=xdebug.so
      • xdebug.mode=debug
      • xdebug.client_host=你的开发机IP(如 192.168.1.100)
      • xdebug.client_port=9003
      • xdebug.start_with_request=yes
      • xdebug.idekey=PHPSTORM
    • 重启服务:sudo systemctl restart apache2 或 sudo systemctl restart php8.1-fpm & & sudo systemctl restart nginx
  • PHPStorm 设置
    • File → Settings → Languages & Frameworks → PHP → Servers:新增服务器,填写远程 Host/Port,Debugger 选 Xdebug;若本地与远程代码路径不同,配置 Path mappings(本地项目根目录 ↔ 服务器项目根目录)。
    • File → Settings → Languages & Frameworks → PHP → Debug:确认 Debug port=9003
    • Run → Edit Configurations → 新建 PHP Remote Debug:选择上一步的 Server,IDE key 填 PHPSTORM,Debugger mode 选 Attach to remote host
  • 开始调试
    • 在 PHPStorm 点击 “电话”图标开始监听;浏览器访问目标 URL,必要时在 URL 上附加参数:?XDEBUG_SESSION_START=PHPSTORM,命中断点后即可单步、查看变量与调用栈。

三 方案二 远程服务器无法直连开发机时的 SSH 隧道

  • 思路:让远程服务器的 9003 端口通过 SSH 转发到本地开发机的 9003,这样 Xdebug 连接的是“本机”的 PHPStorm。
  • 建立隧道(在本地开发机执行)
    • 标准端口转发:ssh -R 9003:localhost:9003 user@远程服务器IP
    • 若远程是云主机且只开放跳板机端口,可先连跳板机再转发:ssh -J jumpuser@跳板机IP -R 9003:localhost:9003 user@目标服务器IP
  • 远程服务器 Xdebug 配置
    • xdebug.client_host=127.0.0.1(隧道已把 9003 映射到本机)
    • xdebug.client_port=9003
    • 其他保持与方案一一致(mode=debug、idekey=PHPSTORM 等)
  • PHPStorm 设置
    • Servers 与 Debug 端口按方案一配置;Run/Debug Configurations 使用 PHP Remote Debug 并启动监听,访问远程 URL 触发调试。
  • 验证隧道
    • 在远程服务器上执行:telnet 127.0.0.1 9003,能连通说明隧道与 Xdebug 端口正常。

四 常见问题与排查

  • 端口与连通性
    • 确认远程 php.ini 的 xdebug.client_port 与 PHPStorm 的 Debug port 一致(推荐 9003);服务器与网络侧防火墙需放行该端口(或仅放行 SSH 用于隧道)。
  • IDE 无法捕获请求
    • 核对 Servers → Path mappings 是否正确;确保请求携带 XDEBUG_SESSION_START=PHPSTORM 或使用 Xdebug Helper 浏览器插件触发调试;PHPStorm 处于“监听”状态。
  • 版本与配置项差异
    • Xdebug 3 使用 xdebug.mode=debug、xdebug.client_host、xdebug.client_port;Xdebug 2 使用 remote_enable、remote_host、remote_port 等,混用会导致不生效。
  • 日志定位
    • 在远程 php.ini 增加:xdebug.log=/tmp/xdebug.log,通过日志判断连接目标与握手过程是否成功。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu上PHPStorm如何进行远程调试
本文地址: https://pptw.com/jishu/760121.html
PHPStorm在Ubuntu上如何设置字体大小 Debian文件系统如何实现数据完整性校验

游客 回复需填写必要信息