在Debian服务器上,通过包管理器安装Xdebug(以PHP 8.1为例,版本需与服务器PHP版本匹配):
sudo apt update
sudo apt install php-xdebug
安装完成后,Xdebug会自动加载,但需通过php --ini确认php.ini文件位置(如/etc/php/8.1/cli/php.ini、/etc/php/8.1/fpm/php.ini)。
编辑php.ini文件,在文件末尾添加以下配置(关键参数说明见注释):
[xdebug]
; 启用Xdebug扩展(路径需与实际安装位置一致,可通过`php -m | grep xdebug`验证)
zend_extension=xdebug.so
; 设置调试模式为“debug”(Xdebug 3+默认模式)
xdebug.mode=debug
; 指定PhpStorm(IDE)的IP地址(需替换为本地机器的内网/公网IP)
xdebug.client_host=192.168.1.100  # 示例:本地机器IP
; 指定调试端口(默认9003,需与PhpStorm配置一致)
xdebug.client_port=9003
; 自动启动调试会话(无需手动传递参数)
xdebug.start_with_request=yes
; 设置IDE标识(需与PhpStorm中的“idekey”一致)
xdebug.idekey=PHPSTORM
保存文件后,重启PHP服务使配置生效:
# 若使用PHP-FPM
sudo systemctl restart php8.1-fpm
# 若使用Apache
sudo systemctl restart apache2
确保PhpStorm能识别远程服务器的PHP环境,步骤如下:
File > Settings > PHP。CLI Interpreter右侧的齿轮图标,选择Add。SSH Interpreter,输入远程服务器的IP地址、SSH端口(默认22)、用户名(如root)。Next。Interpreter栏填写远程PHP路径(如/usr/bin/php),PhpStorm会自动检测PHP版本和扩展。Finish保存配置。为了让PhpStorm能同步本地与远程文件,需设置SFTP连接:
File > Settings > Deployment > Configuration,点击+添加新服务器。Debian-Remote),选择SFTP类型。Root path中填写远程项目的根目录(如/var/www/html/myproject)。Test Connection测试连接,成功后勾选Automatic upload(自动上传保存的文件)。Mappings标签,设置路径映射:
/var/www/html/myproject)。/Users/username/projects/myproject)。http://myproject.example.com),用于预览。Run > Edit Configurations,点击+添加PHP Remote Debug配置。Server下拉菜单中选择之前添加的远程服务器(如Debian-Remote)。Debugger为Xdebug,IDE key为PHPSTORM(与php.ini一致)。OK保存配置。有两种方式触发调试:
XDEBUG_SESSION_START=PHPSTORM参数(如http://myproject.example.com?page?XDEBUG_SESSION_START=PHPSTORM),或使用浏览器插件(如Xdebug Helper)一键开启调试。Run > Debug选择对应的PHP Remote Debug配置启动调试。xdebug.client_port(如9003)的入站连接(sudo ufw allow 9003)。Mappings配置是调试的关键,若路径不匹配,PhpStorm无法正确定位断点。xdebug.remote_enable改为xdebug.mode=debug),需根据版本调整。完成以上步骤后,当代码执行到断点时,PhpStorm会自动暂停并显示调试信息,可进行单步执行、查看变量、分析调用栈等操作。