温馨提示×

ubuntu php日志怎么定位

小樊
39
2026-09-30 15:16:38
栏目: 编程语言

在 Ubuntu 上定位 PHP 日志,通常分 PHP 本身错误日志 和 Web 服务器(Nginx/Apache)日志 两类。下面按常见场景给你梳理。


一、先确认 PHP 错误日志配置在哪

1. 查看 php.ini 位置

php --ini

或(CLI 与 FPM 可能不同):

php -i | grep "Loaded Configuration File"

2. 查看错误日志配置

grep -E "log_errors|error_log" /etc/php/*/fpm/php.ini

常见结果:

log_errors = On
error_log = /var/log/php/php-error.log

如果没有 error_log,PHP 错误会写到 Web 服务器日志里。


二、常见 PHP 日志位置(Ubuntu)

PHP-FPM(最常见)

/var/log/php/php-error.log
/var/log/php7.x-fpm.log

Apache + mod_php

/var/log/apache2/error.log

Nginx + PHP-FPM

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

三、实时查看日志(最常用)

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

或同时看 Nginx:

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

四、如果“看不到错误”怎么办

1. 临时开启错误显示(开发环境)

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

2. 检查 PHP-FPM 是否真的写了日志

ls -l /var/log/php/

如果目录不存在:

sudo mkdir -p /var/log/php
sudo chown www-data:www-data /var/log/php

3. 重启 PHP-FPM

sudo systemctl restart php-fpm
# 或
sudo systemctl restart php7.4-fpm

五、常见坑位总结

问题 原因
看不到错误 log_errors=Off
日志为空 错误被框架 catch
生产环境无日志 display_errors=Off 且未配置 error_log
CLI 与 Web 日志不同 使用了不同 php.ini

如果你能告诉我:

  • 用的是 Nginx 还是 Apache
  • PHP 版本
  • 是 Web 请求还是命令行

我可以直接给你一条精准命令。

0 踩