温馨提示×

ubuntu php日志如何定位错误

小樊
39
2026-09-21 17:39:01
栏目: 编程语言

在 Ubuntu 上定位 PHP 错误,通常可以从 PHP 错误日志、Web 服务器日志、PHP 配置 三个方面入手。下面按常见场景给你一套实用方法。


一、确认 PHP 错误日志位置

1. 查看 php.ini 配置

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)

查看错误相关配置:

grep -E "error_reporting|display_errors|log_errors|error_log" /etc/php/8.1/fpm/php.ini

关键参数说明:

error_reporting = E_ALL
display_errors = Off     # 生产环境建议 Off
log_errors = On
error_log = /var/log/php/php-error.log

如果 error_log 为空,错误会写入 Web 服务器日志。


二、查看 PHP 错误日志(最常用)

PHP-FPM

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

或

journalctl -u php8.1-fpm -f

Apache

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

Nginx + PHP-FPM

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

三、Web 服务器日志定位

Nginx

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

Apache

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

四、命令行 PHP 脚本错误

php your_script.php

若没输出错误:

php -d display_errors=1 your_script.php

五、临时开启错误显示(调试用)

在 PHP 文件顶部加:

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

或在 CLI 临时执行:

php -d display_errors=1 -d error_reporting=E_ALL script.php

六、常见错误定位技巧

1. 500 错误

  • 看 nginx/error.log
  • 看 php-error.log
  • 检查 PHP 语法:
php -l file.php

2. 白屏

  • 基本是 fatal error
  • 查看 PHP 错误日志

3. 权限问题

tail -f /var/log/php/php-error.log
# Permission denied

解决办法:

chown -R www-data:www-data /path
chmod -R 755 /path

七、推荐排查流程(实战)

# 1. 看实时错误
tail -f /var/log/php/php-error.log

# 2. 看 Web 服务错误
tail -f /var/log/nginx/error.log

# 3. 复现请求
curl https://your-site.com/api/test

# 4. 根据报错行号定位代码

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

  • 用的是 Nginx 还是 Apache
  • PHP 版本
  • 具体是 500 / 白屏 / CLI 报错

我可以直接帮你给出对应命令和解决方案。

0 踩