温馨提示×

Ubuntu怎样开启PHP调试

小樊
34
2026-07-28 04:34:24
栏目: 编程语言

在 Ubuntu 上开启 PHP 调试,通常是指 开启错误显示 / 日志记录,或者 使用 Xdebug 进行断点调试。下面按常见需求分情况说明。


一、开启 PHP 错误显示(最基础)

1️⃣ 找到 php.ini 文件

先确认你用的是哪个 php.ini:

php --ini

常见路径:

  • /etc/php/8.1/apache2/php.ini(Apache)
  • /etc/php/8.1/fpm/php.ini(Nginx + PHP-FPM)
  • /etc/php/8.1/cli/php.ini(命令行)

2️⃣ 修改 php.ini

编辑对应文件:

sudo nano /etc/php/8.1/apache2/php.ini

修改或取消注释以下内容:

display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log

3️⃣ 重启服务

Apache:

sudo systemctl restart apache2

Nginx + PHP-FPM:

sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

✅ 浏览器访问即可看到 PHP 报错信息。


二、开启 PHP 日志记录(生产环境推荐)

生产环境不建议 display_errors = On,而应使用日志:

display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

创建日志文件并授权:

sudo touch /var/log/php_errors.log
sudo chown www-data:www-data /var/log/php_errors.log

三、使用 Xdebug 进行断点调试(强烈推荐)

1️⃣ 安装 Xdebug

sudo apt update
sudo apt install php-xdebug

或指定版本:

sudo apt install php8.1-xdebug

2️⃣ 配置 Xdebug

编辑 Xdebug 配置文件:

sudo nano /etc/php/8.1/mods-available/xdebug.ini

加入或修改:

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

3️⃣ 重启服务

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

4️⃣ 验证是否开启

php -v

看到类似:

with Xdebug v3.x

或:

php -i | grep xdebug

四、配合 IDE 使用(VS Code 示例)

1️⃣ 安装 VS Code 插件

  • PHP Debug(by Felix Becker)

2️⃣ 配置 launch.json

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

3️⃣ 浏览器访问 PHP 页面

  • 在 VS Code 打断点
  • 页面触发即可调试

五、常见问题

❓ 修改 php.ini 不生效

  • 确认改的是 正确版本的 php.ini
  • 确认重启了 Apache / PHP-FPM

❓ Nginx 看不到错误

  • Nginx 本身不显示 PHP 错误
  • 要查看 error_logphp-fpm.log

六、快速总结

需求 方法
看报错 开启 display_errors
生产环境 开启 log_errors
断点调试 安装 Xdebug
IDE 调试 VS Code + Xdebug

如果你能告诉我:

  • ✅ Ubuntu 版本
  • ✅ PHP 版本
  • ✅ Apache / Nginx
  • ✅ 本地 or 服务器

我可以给你 精确到命令级别 的配置方案。

0