温馨提示×

如何在Ubuntu上用PHPStorm调试代码

小樊
48
2025-10-31 22:51:56
栏目: 编程语言

在Ubuntu上使用PHPStorm调试PHP代码的完整步骤

1. 安装Xdebug扩展

首先确保Ubuntu系统已安装PHP和Xdebug。通过终端运行以下命令安装Xdebug:

sudo apt update
sudo apt install php-xdebug  # 若使用特定PHP版本(如8.1),替换为php8.1-xdebug

安装完成后,Xdebug会自动加载,可通过php -v命令验证(输出中应包含“with Xdebug”字样)。

2. 配置php.ini文件

找到当前PHP版本的php.ini文件(路径可通过php --ini命令查看,通常为/etc/php/{version}/cli/php.ini/etc/php/{version}/fpm/php.ini),用文本编辑器(如nano)打开并添加以下配置:

zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=127.0.0.1  # 本地IP,若远程调试需改为本地计算机IP
xdebug.client_port=9003       # Xdebug默认端口(需与PHPStorm一致)
xdebug.start_with_request=yes # 自动启动调试(可选:trigger/yes)

保存文件后,重启PHP和Web服务器使配置生效:

# 若使用PHP-FPM
sudo systemctl restart php{version}-fpm  # 如php8.1-fpm
# 若使用Apache
sudo systemctl restart apache2
# 若使用Nginx
sudo systemctl restart nginx

3. 配置PHPStorm

3.1 设置PHP解释器

打开PHPStorm,进入File > Settings > Languages & Frameworks > PHP,点击“CLI Interpreter”右侧的齿轮图标,选择“Add”。选择“Local Path to Interpreter”,浏览至Ubuntu系统的PHP可执行文件(通常为/usr/bin/php),点击“OK”保存。

3.2 添加Servers配置

进入Settings > Languages & Frameworks > PHP > Servers,点击“+”添加新服务器:

  • Name:自定义服务器名称(如“Ubuntu Local”);
  • Host:输入localhost(本地调试)或远程服务器IP(远程调试);
  • Port:输入Web服务器端口(如80、443);
  • 勾选“Use path mappings”(路径映射,见步骤4)。
3.3 配置Debug设置

进入Settings > Languages & Frameworks > PHP > Debug,确保:

  • “Xdebug”部分的“Debug port”设置为9003(与php.ini中的client_port一致);
  • 勾选“Can accept external connections”(远程调试需开启)。

4. 设置路径映射(远程调试必需)

若调试远程服务器上的代码,需将本地项目路径与远程服务器路径关联。进入Servers配置页,选中刚添加的服务器,点击“Mappings”标签:

  • Local path:选择本地项目的根目录(如/home/user/project);
  • Remote path:输入远程服务器上项目对应的路径(如/var/www/html/project)。

5. 设置断点

在PHPStorm中打开需要调试的PHP文件,在代码行号左侧单击,设置断点(红色圆点)。可设置多个断点,调试时会依次暂停。

6. 启动调试会话

6.1 本地调试

点击PHPStorm右上角的绿色虫子图标(Start Listening for PHP Debug Connections),或按Shift+F9启动调试。此时PHPStorm会等待调试请求。

6.2 触发调试
  • 浏览器方式:在浏览器中访问项目URL,添加XDEBUG_SESSION_START=PHPSTORM参数(如http://localhost/project?XDEBUG_SESSION_START=PHPSTORM),或使用浏览器插件(如Xdebug Helper)开启调试模式;
  • 命令行方式:若调试CLI脚本,在命令前添加XDEBUG_SESSION=1(如XDEBUG_SESSION=1 php script.php)。

7. 使用调试工具

当代码执行到断点时,PHPStorm会切换至调试视图,可进行以下操作:

  • Step Over(F8):执行当前行,跳至下一行;
  • Step Into(F7):进入当前行的函数/方法内部;
  • Step Out(Shift+F8):跳出当前函数/方法;
  • Resume Program(F9):继续执行至下一个断点或结束;
  • View Variables:查看当前变量的值;
  • Call Stack:查看函数调用堆栈。

注意事项

  • 确保Ubuntu防火墙允许9003端口流量(sudo ufw allow 9003);
  • 若使用远程调试,确保本地计算机与远程服务器之间的网络连通(可通过ping命令验证);
  • 若调试不生效,检查php.ini中的xdebug.mode是否为debugclient_host是否正确,以及PHPStorm的Debug端口是否与php.ini一致。

0