温馨提示×

如何在Debian上配置phpstorm远程调试

小樊
45
2025-10-08 19:29:54
栏目: 编程语言

1. 准备工作

确保远程Debian服务器已安装PHP(如php-cliphp-fpmphp-apache)和Composer(可选,用于依赖管理)。可通过以下命令快速安装基础环境:

sudo apt update && sudo apt install php php-cli php-fpm composer -y 

2. 安装Xdebug扩展

通过PECL(推荐,适配最新PHP版本)或APT安装Xdebug:

方法一:PECL安装(适用于自定义编译的PHP)

sudo pecl install xdebug 

方法二:APT安装(适用于系统默认PHP包)

sudo apt install php-xdebug -y 

安装完成后,通过php -m | grep xdebug验证扩展是否加载。

3. 配置Xdebug参数

编辑PHP配置文件(根据PHP运行模式选择对应文件,如FPM用/etc/php/8.2/fpm/php.ini,CLI用/etc/php/8.2/cli/php.ini):

sudo nano /etc/php/8.2/fpm/php.ini 

在文件末尾添加以下配置(关键参数说明):

[xdebug] ; 加载Xdebug扩展(路径可通过`php -i | grep extension_dir`获取) zend_extension=xdebug.so ; 开启调试模式(Xdebug 3+必需) xdebug.mode=debug ; 指定IDE监听的IP(需替换为本地机器IP,如192.168.1.100) xdebug.client_host=192.168.1.100 ; 指定IDE监听的端口(默认9003,需与PHPStorm一致) xdebug.client_port=9003 ; 自动启动调试(无需手动传递参数) xdebug.start_with_request=yes ; IDE标识(需与PHPStorm配置一致) xdebug.idekey=PHPSTORM 

保存后重启PHP服务:

sudo systemctl restart php8.2-fpm # 若使用Apache,替换为`sudo systemctl restart apache2` 

4. 配置PHPStorm

4.1 添加远程服务器

  1. 打开PHPStorm,进入File > Settings > Languages & Frameworks > PHP > Servers
  2. 点击+添加服务器,填写:
    • Name:自定义名称(如Debian-Remote);
    • Host:远程服务器IP(如192.168.1.100);
    • Port:HTTP端口(如80443);
    • Debugger:选择Xdebug
    • (可选)勾选Use path mappings,将远程项目路径(如/var/www/html/myproject)映射到本地项目路径(如/home/user/myproject)。
  3. 点击OK保存。

4.2 配置调试环境

  1. 进入Run > Edit Configurations,点击+添加PHP Remote Debug
  2. 填写:
    • Name:自定义名称(如Debian-Debug);
    • Server:选择上一步添加的服务器;
    • Debugger mode:选择Attach to remote host
    • IDE keyPHPSTORM(与Xdebug配置一致)。
  3. 点击OK保存。

4.3 验证PHP解释器

  1. 进入File > Settings > Languages & Frameworks > PHP
  2. 点击...添加远程解释器,选择SSH Interpreter,输入远程服务器IP、用户名及密码/密钥。
  3. Interpreter栏选择远程PHP路径(如/usr/bin/php),点击Finish

5. 启动调试会话

  1. 在PHPStorm中打开项目,点击顶部工具栏的虫子图标(或按Shift+F9)启动监听。
  2. 在代码中设置断点(点击行号左侧)。
  3. 在浏览器中访问远程项目(如http://192.168.1.100/myproject/index.php),触发断点。
  4. PHPStorm会自动暂停执行,可通过调试工具栏(单步执行、查看变量、表达式等)进行调试。

6. 常见问题排查

  • 防火墙拦截:确保远程服务器防火墙允许xdebug.client_port(如9003)的入站连接:
    sudo ufw allow 9003/tcp 
  • 路径映射错误:若断点未生效,检查Servers配置中的Path mappings是否正确映射了远程与本地项目路径。
  • Xdebug未加载:通过php -v查看是否有Xdebug提示,或php -i | grep xdebug确认扩展加载状态。
  • 端口冲突:若9003端口被占用,可修改xdebug.client_port为其他端口(如9004),并同步更新PHPStorm配置。

通过以上步骤,即可在Debian服务器上完成PHPStorm的远程调试配置,实现本地IDE与远程代码的联动调试。

0