温馨提示×

phpstorm在centos中如何调试代码

小樊
46
2025-12-23 09:32:55
栏目: 编程语言

在 CentOS 上使用 PhpStorm 调试 PHP 代码

一 环境准备与安装

  • 安装 PHP 与调试器:在 CentOS 7/8 上安装 PHPXdebug(适配你的 PHP 版本)。示例:sudo yum install php php-cli php-pear php-devel php-pear-devel xdebug。如使用 Nginx + PHP-FPM,后续需重启对应服务。
  • 确认 Xdebug 安装结果:执行 php -v 应能看到 Xdebug 字样;或创建 info.php 输出 phpinfo(); 并在浏览器访问,确认 Xdebug 已加载。
  • PhpStorm 侧准备:确保已安装并可用;在设置中配置 PHP 解释器(CLI),后续用于本地脚本与 CLI 调试。

二 Xdebug 3 关键配置

  • 编辑配置文件:常见位置为 /etc/php.ini/etc/php.d/xdebug.ini。添加或修改如下(路径与端口按你的环境调整):
    [Xdebug]
    zend_extension=/usr/lib64/php/modules/xdebug.so
    xdebug.mode=debug
    xdebug.client_host=127.0.0.1
    xdebug.client_port=9003
    xdebug.start_with_request=yes
    xdebug.idekey=PHPSTORM
    
    说明:
    • xdebug.mode=debug 启用调试模式;
    • xdebug.client_host 为 PhpStorm 所在机器的地址(本机调试填 127.0.0.1;若由远程触发,填运行 PhpStorm 的主机 IP);
    • xdebug.client_port 默认 9003(与 PhpStorm 保持一致);
    • xdebug.start_with_request=yes 便于触发调试;
    • xdebug.idekey 与浏览器插件或 DBGp 代理保持一致。
  • 重启服务:
    • Apache:sudo systemctl restart httpd
    • Nginx + PHP-FPM:sudo systemctl restart nginx && sudo systemctl restart php-fpm

三 PhpStorm 调试配置

  • Servers 配置:进入 File > Settings > Languages & Frameworks > PHP > Servers,新建服务器,填写 Name/Host/Port,勾选 Use path mappings,将服务器上的项目路径映射到本机项目路径(例如服务器 /var/www/html ↔ 本机 /home/user/project)。
  • 调试运行配置:进入 Run > Edit Configurations,新建 PHP Remote Debug,选择上一步的服务器,IDE keyPHPSTORM
  • DBGp 代理(可选):若使用浏览器插件或需要多客户端协作,在 Settings > PHP > Debug > DBGp Proxy 中设置 IDE keyHost(运行 PhpStorm 的机器 IP)、Port(常用 9003)。
  • 浏览器插件:安装 Xdebug Helper(Chrome/Firefox),将 IDE key 设为 PHPSTORM,便于一键开启/关闭调试会话。
  • 监听与触发:点击工具栏 电话听筒图标 开始监听;在浏览器访问目标 URL 触发调试(可附加 ?XDEBUG_SESSION_START=PHPSTORM 或启用插件自动注入)。

四 本地脚本与 CLI 调试

  • 直接在本机 CentOS 上调试 CLI 脚本:
    1. 在 PhpStorm 创建 Run/Debug Configuration 类型为 PHP Script
    2. 选择 CLI 解释器(Settings > PHP > CLI Interpreter);
    3. 在代码中设置断点,点击调试运行。
  • 远程服务器 CLI 调试(通过 SSH 隧道):
    1. 在 PhpStorm 配置 Deployment(SFTP)与 Path Mappings
    2. 使用 Xshell 建立到服务器的 SSH 连接,并配置本地端口 9003 转发到本机 9003(隧道);
    3. 保持 PhpStorm 监听,服务器端执行脚本,Xdebug 将通过隧道连接回本机进行调试。

五 常见问题与排查

  • 端口占用与连通性:确认 9003 未被占用(ss -lntp | grep 9003);服务器与 PhpStorm 所在主机之间网络可达(云服务器需开放安全组/防火墙)。
  • 触发失败:确保 URL 带有 XDEBUG_SESSION_START=PHPSTORM 或浏览器插件已启用;必要时在 php.ini 中设置 xdebug.start_with_request=yes
  • 路径映射错误:断点命中但变量不可见,多为 Servers 中本地与服务器路径映射不一致,修正后重试。
  • 版本差异:Xdebug 2 与 3 配置项不同(如 2 使用 remote_enable/remote_host/remote_port,3 使用 mode/client_host/client_port);以 php -v 显示的 Xdebug 版本为准。
  • 日志诊断:在 php.ini 增加 xdebug.log=/tmp/xdebug.log,通过日志定位握手与连接问题。

0