在 Ubuntu 上调试 PHP 代码,常见方式有以下几种,按使用频率和推荐程度给你总结:
适合简单问题。
echo / print_r / var_dump<?php
$var = ['a' => 1, 'b' => 2];
echo '<pre>';
print_r($var);
var_dump($var);
error_log写入日志文件,不干扰页面输出:
error_log('debug info: ' . print_r($var, true));
日志位置一般在:
/var/log/apache2/error.log
# 或
/var/log/nginx/error.log
php --ini
sudo nano /etc/php/8.1/cli/php.ini
# 或 fpm 版本
sudo nano /etc/php/8.1/fpm/php.ini
修改:
display_errors = On
error_reporting = E_ALL
log_errors = On
重启服务:
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx
# 或 apache
sudo systemctl restart apache2
适合复杂项目、断点调试。
sudo apt install php-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
重启:
sudo systemctl restart php8.1-fpm
验证:
php -m | grep xdebug
PHP Debug 插件php -l file.php # 语法检查
php file.php # 直接运行
file_put_contents('/tmp/debug.log', print_r($data, true), FILE_APPEND);
❌ 白屏
✅ 检查 display_errors 是否开启
❌ Xdebug 不生效
✅ 确认 php-fpm 和 cli 是同一版本
如果你愿意,可以告诉我:
我可以给你更精确的调试方案。