1. 准备工作
确保Ubuntu服务器已安装PHP(如PHP 8.1+)和Web服务器(Apache/Nginx),并具备SSH访问权限;本地机器安装PhpStorm(2025.x及以上版本)。
2. 在Ubuntu服务器上安装Xdebug
通过终端执行以下命令安装Xdebug扩展:
sudo apt-get update
sudo apt-get install php-xdebug
安装完成后,Xdebug会自动集成到PHP环境中,但需进一步配置。
3. 配置Xdebug参数
编辑PHP配置文件(根据PHP运行模式选择路径,如Apache用/etc/php/8.1/apache2/php.ini,PHP-FPM用/etc/php/8.1/fpm/php.ini),在文件末尾添加以下配置:
[xdebug]
zend_extension=xdebug.so ; 加载Xdebug扩展(路径可通过`php -i | grep extension_dir`确认)
xdebug.mode=debug ; 启用调试模式
xdebug.client_host=192.168.1.100 ; 本地机器的IP地址(需替换为实际IP,用于Xdebug连接)
xdebug.client_port=9003 ; 调试端口(默认9003,需与PhpStorm设置一致)
xdebug.start_with_request=yes ; 自动启动调试(可选:trigger/yes,推荐yes简化操作)
xdebug.idekey=PHPSTORM ; IDE标识(需与PhpStorm配置一致)
xdebug.log=/tmp/xdebug.log ; 可选:记录调试日志(排查问题时启用)
保存文件后,重启Web服务器使配置生效:
# Apache
sudo systemctl restart apache2
# Nginx + PHP-FPM
sudo systemctl restart php8.1-fpm && sudo systemctl restart nginx
4. 在PhpStorm中配置远程解释器
打开PhpStorm,进入File > Settings > Languages & Frameworks > PHP,点击右上角齿轮图标→Add,选择Remote类型:
/usr/bin/php,通过which php获取);/home/user/project)与远程服务器项目路径(如/var/www/html/my_project)的映射;Test Connection验证连接,成功后点击OK保存。5. 配置PHP Servers
进入File > Settings > Languages & Frameworks > PHP > Servers,点击+添加新服务器:
Remote Server);192.168.1.100);Xdebug;Use path mappings,确保本地与远程路径正确映射(如本地/home/user/project→远程/var/www/html/my_project);OK保存。6. 配置调试监听端口
进入File > Settings > Languages & Frameworks > PHP > Debug,确认Debug port设置为与Xconfig中xdebug.client_port一致的9003;切换至DBGp Proxy标签,设置:
PHPSTORM(与Xdebug配置一致);192.168.1.100);9001(默认,可与Xdebug的client_port不同);OK保存。7. 启动调试会话
Shift+F9)启动调试监听;http://192.168.1.100/my_script.php?XDEBUG_SESSION_START=PHPSTORM;Debug模式后访问。8. 验证与调试
当代码执行到断点时,PhpStorm会自动暂停,显示Debug工具窗口。可通过窗口查看:
Step Over(F8)、Step Into(F7)、Step Out(Shift+F8)等按钮进行单步调试。常见问题排查
9003端口被占用,修改Xconfig和PhpStorm中的client_port为其他端口(如9007),并同步更新;Validate remote environment(在Servers配置中)验证;php -m | grep xdebug确认扩展是否加载,未加载则检查php.ini路径和zend_extension配置;client_port(如9003)的入站连接(sudo ufw allow 9003/tcp)。