温馨提示×

ubuntu php怎么调试

小樊
43
2026-09-16 13:09:05
栏目: 编程语言

在 Ubuntu 上调试 PHP,常见方式有以下几种,按使用频率和学习成本从易到难说明:


一、最常用:开启错误显示(基础调试)

适合:看报错、定位语法/逻辑错误

1. 修改 php.ini

php --ini

找到 Loaded Configuration File,例如:

/etc/php/8.1/cli/php.ini
/etc/php/8.1/apache2/php.ini

修改内容:

display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On

2. 或在代码中临时开启

ini_set('display_errors', 1);
error_reporting(E_ALL);

3. 查看 Web 服务器错误日志

# Apache
tail -f /var/log/apache2/error.log

# Nginx + PHP-FPM
tail -f /var/log/nginx/error.log
tail -f /var/log/php8.1-fpm.log

二、使用 Xdebug(推荐,专业调试)

适合:断点、单步执行、变量查看

1. 安装 Xdebug

sudo apt update
sudo apt install php-xdebug

查看是否安装成功:

php -m | grep xdebug

2. 配置 Xdebug(PHP 8.0+)

编辑 php.ini(以 CLI 或 FPM 为例):

[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003

重启服务:

sudo systemctl restart apache2
# 或
sudo systemctl restart php8.1-fpm

3. 使用 VS Code 调试

安装插件:PHP Debug

launch.json 示例:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Listen for Xdebug",
      "type": "php",
      "request": "launch",
      "port": 9003
    }
  ]
}

然后:

  • 打断点
  • 访问网页
  • VS Code 自动暂停

三、命令行调试(CLI)

适合:脚本、定时任务

php -d xdebug.mode=debug your_script.php

或单步执行:

php -a

四、日志调试(简单粗暴)

error_log(print_r($var, true));

查看:

tail -f /var/log/php_errors.log

五、常见问题

1. 修改 php.ini 不生效?

确认改的是正确的 php.ini(CLI 和 FPM 不同)

2. Xdebug 连不上?

  • 防火墙
  • client_host 是否正确
  • 端口是否被占用

如果你告诉我:

  • PHP 版本
  • Web 服务器(Apache / Nginx)
  • 用 VS Code 还是 PHPStorm

我可以给你更精确的配置示例

0