确保Linux服务器已安装PHP(建议版本≥7.2)、PHP-FPM(或其他PHP运行环境),并具备gcc、php-devel、autoconf等编译工具(用于安装Xdebug)。
安装Xdebug
通过PECL(推荐)或源码编译安装Xdebug(以PECL为例):
sudo yum install php-pear php-devel gcc autoconf -y # 安装依赖
pecl install xdebug # 编译安装
注:若PECL安装失败,可前往Xdebug官网下载对应版本的源码包,手动解压编译(参考搜索结果中的源码安装步骤)。
配置php.ini
编辑PHP配置文件(路径可通过php --ini查看,通常为/etc/php.ini或/etc/php-fpm.conf),在文件末尾添加以下参数:
zend_extension=xdebug.so # 加载Xdebug扩展(路径可通过`php -i | grep extension_dir`确认)
xdebug.mode=debug # 启用调试模式(Xdebug 3+必需)
xdebug.start_with_request=yes # 自动启动调试(或设为"trigger",通过Cookie触发)
xdebug.client_host=你的本地IP地址 # PhpStorm所在机器的IP(如192.168.1.100)
xdebug.client_port=9003 # 调试端口(默认9003,需与PhpStorm一致)
xdebug.idekey=PHPSTORM # IDE标识(需与PhpStorm配置一致)
⚠️ 注意:若使用SELinux,需执行
setsebool -P httpd_can_network_connect 1允许PHP连接外部端口。
重启PHP服务
sudo systemctl restart php-fpm # 重启PHP-FPM(若使用Apache,替换为`systemctl restart httpd`)
验证Xdebug安装
创建info.php文件(内容为<?php phpinfo(); ?>),通过浏览器访问,搜索“Xdebug”确认扩展已加载,且参数配置正确。
添加远程服务器连接(Deployment)
File > Settings > Build, Execution, Deployment > Deployment,点击+添加新服务器。RemoteServer);/var/www/html/project)。Test Connection测试连接,成功后勾选Automatic upload(自动上传本地文件到服务器)。设置路径映射(Mappings)
在Deployment配置页切换至Mappings标签,填写以下路径:
http://your-domain.com);Root path一致);/home/user/project)。注:路径映射是调试的关键,确保本地与远程文件一一对应。
配置PHP解释器
File > Settings > PHP,点击CLI Interpreter右侧的...,选择From Docker, Vagrant, SSH... > SSH Credentials。/usr/bin/php),点击OK保存。配置调试服务器
Run > Edit Configurations,点击+添加PHP Web Page配置。Server下拉框中选择之前添加的远程服务器,填写Start URL(如/project/index.php),确保Debugger选择Xdebug。开启调试监听
点击PhpStorm工具栏的电话听筒图标(Start Listening for PHP Debug Connections),图标变为绿色表示开始监听调试请求。
设置断点
在本地项目中打开需要调试的PHP文件,在代码行号左侧点击设置断点(红色圆点)。
触发调试会话
XDEBUG_SESSION_START=PHPSTORM参数(如http://your-domain.com/index.php?XDEBUG_SESSION_START=PHPSTORM),或安装浏览器插件(如Xdebug Helper)一键开启调试。xdebug_break()函数,执行到该行时会自动触发调试。调试操作
当请求命中断点时,PhpStorm会自动切换至调试视图,可通过工具栏按钮控制执行流程:
xdebug.client_port(如9003)的入站流量(sudo firewall-cmd --add-port=9003/tcp --permanent);Mappings配置正确,本地与远程路径一致;php -m | grep xdebug确认扩展已加载,或检查php.ini路径是否正确。通过以上步骤,即可在Linux环境下使用PhpStorm实现远程调试,像操作本地项目一样调试远程服务器上的PHP代码。