温馨提示×

怎样定位ubuntu php报错

小樊
42
2026-10-18 04:36:30
栏目: 编程语言

在 Ubuntu 上定位 PHP 报错,通常可以从**错误日志、PHP 配置、运行方式(CLI / FPM / Apache)**几个层面入手。下面按实用顺序给你一套方法。


一、先确认 PHP 报错是否开启

1. 查看当前 PHP 配置

php --ini

常见配置文件:

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

2. 关键错误相关配置

display_errors = On        ; 页面/终端显示错误(开发环境)
log_errors = On            ; 记录错误日志
error_reporting = E_ALL
error_log = /var/log/php/php_errors.log

修改后重启服务:

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

二、不同运行方式查看报错位置

1. PHP CLI(命令行)

直接运行:

php script.php

错误会直接输出在终端。

查看 CLI 日志:

tail -f /var/log/php/php_errors.log

2. PHP-FPM(Nginx 常见)

Nginx 错误日志

tail -f /var/log/nginx/error.log

PHP-FPM 错误日志

tail -f /var/log/php8.1-fpm.log

站点级别错误

如果在 php-fpm 池配置中指定了:

php_admin_value[error_log] = /var/log/php/myapp.log

就去看对应文件。


3. Apache + mod_php

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

三、快速定位“白屏 / 500 错误”

1. 打开错误显示(临时)

在 PHP 文件最前面加:

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

2. 查看 HTTP 状态码

curl -I http://localhost/test.php

3. 检查权限问题

常见于:

  • 日志目录无写权限
  • upload_tmp_dir 不可写
ls -ld /var/log/php

四、用 Xdebug 精确定位(推荐开发环境)

安装

sudo apt install php-xdebug

配置(cli 或 fpm)

zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes

配合 PHPStorm / VSCode 可逐行调试。


五、常见报错速查表

现象 可能原因
500 错误 PHP 语法错误 / FPM 崩溃
白屏 display_errors=Off
权限报错 www-data 无权限
内存耗尽 memory_limit 太小
超时 max_execution_time

六、一个排查标准流程(建议记住)

  1. 看 HTTP 状态码
  2. 看 Nginx / Apache 错误日志
  3. 看 PHP 错误日志
  4. 开 display_errors
  5. 必要时上 Xdebug

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • PHP 版本
  • 用的 Nginx 还是 Apache
  • 具体报错内容或现象

我可以帮你精准定位到某一行问题。

0 踩