在 CentOS 上使用 PhpStorm 进行调试
一 环境准备
- 安装 PHP、Web 服务与 Xdebug(示例为 Apache + PHP-FPM;如使用 Nginx,将重启命令替换为 Nginx 即可):
- 安装软件包:
sudo yum install -y httpd php php-cli php-pear php-devel php-pear-devel
- 安装 Xdebug:
sudo yum install -y php-xdebug
- 重启服务:
sudo systemctl restart php-fpm && sudo systemctl restart httpd
- 安装并启动 PhpStorm(Linux 版):
- 从 JetBrains 下载解压至如 /opt/phpstorm,进入 /opt/phpstorm/bin 执行
./phpstorm.sh 启动
- 首次运行按提示完成激活与基础设置
二 配置 Xdebug 3(推荐)
- 编辑 PHP 配置(路径可能为 /etc/php.ini 或 /etc/php.d/xdebug.ini),添加或修改如下关键项(注意将 <your_local_ip> 替换为运行 PhpStorm 的机器的 IP):
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=<your_local_ip>
xdebug.client_port=9003
xdebug.start_with_request=yes
xdebug.idekey=PHPSTORM
- 保存后重启服务:
sudo systemctl restart php-fpm && sudo systemctl restart httpd
- 说明:Xdebug 3 使用 client_host/client_port 与 start_with_request 等选项;若需兼容旧版浏览器插件,可保留
xdebug.idekey=PHPSTORM。
三 配置 PhpStorm 调试
- 设置 CLI 解释器(便于 CLI 脚本调试):
- 打开 File > Settings > Languages & Frameworks > PHP > CLI Interpreter,点击齿轮选择 Add > Remote,填写名称(如 CentOS Remote),选择 SSH Interpreter,输入 CentOS 主机 IP、用户名与认证方式,指定远程 PHP 可执行文件路径(如 /usr/bin/php),测试连接后保存。
- 配置服务器与路径映射:
- 打开 File > Settings > Languages & Frameworks > PHP > Servers,点击 +,填写 Name、Host、Port,勾选 Use path mappings,将本地项目路径映射到服务器上的项目路径(如本地 /home/user/project ↔ 服务器 /var/www/html)。
- 创建调试运行配置并启动监听:
- 打开 Run > Edit Configurations > + > PHP Remote Debug,选择上一步的 Server,设置 IDE key=PHPSTORM,保存。
- 点击工具栏的 电话图标 或按 Shift+F9 开启 Start Listening for PHP Debug Connections。
四 触发调试与常见问题
- 触发调试会话:
- 浏览器访问目标页面,附加调试会话参数:
http://<server_ip>/your-script.php?XDEBUG_SESSION_START=PHPSTORM
- 页面命中断点后,PhpStorm 会弹出调试窗口,可使用 F8 继续、F7 步入、Shift+F8 步出 等控制执行,并查看 变量、调用栈 等信息。
- 常见问题排查:
- 无法连接:确认 CentOS 防火墙/云安全组 已放行 9003/TCP,且
xdebug.client_host 填写的是运行 PhpStorm 的 本机 IP(非 127.0.0.1);必要时改为服务器可回连的出口 IP 或使用 SSH 隧道。
- 端口冲突:确保 9003 未被其他进程占用(如
ss -lntp | grep 9003),或在 php.ini 中修改为未占用端口并在 PhpStorm 同步修改 Debug port。
- 断点不生效:确认已开启 监听,访问 URL 包含 XDEBUG_SESSION_START=PHPSTORM,且 Servers 的路径映射 正确;CLI 调试需使用对应的 Run Configuration 运行。