在 Ubuntu 上出现 PHP 日志缺失(看不到错误日志、访问不到日志文件)是常见现象,通常不是“PHP 坏了”,而是配置或运行方式没对上。下面按最常见原因逐一说明。
log_errors检查 php.ini(注意 CLI 和 FPM 是两套):
php --ini
常见路径:
/etc/php/8.x/cli/php.ini/etc/php/8.x/fpm/php.ini确认以下配置:
log_errors = On
error_log = /var/log/php/php-error.log
如果
error_log没写,PHP 可能:
- 交给 Web 服务器(Apache/Nginx)
- 或根本不记录
修改后重启:
sudo systemctl restart php8.x-fpm
错误可能写在 Apache 日志:
/var/log/apache2/error.log
PHP 错误 不会进 Nginx access log,只会在:
检查:
/var/log/php*/php-fpm.log
Ubuntu 默认 没有 /var/log/php
sudo mkdir -p /var/log/php
sudo chown www-data:www-data /var/log/php
否则 PHP 写不进去,直接静默失败
php script.php → 用 cli/php.ini很多人改错文件,导致“明明配了却没日志”。
display_errors = On
log_errors = Off
结果:
如果 PHP 崩溃或被 kill,可能不写日志。
在 www.conf:
catch_workers_output = yes
error_reporting = E_ALL
否则 Notice / Warning 不会记录
# 1. 当前 PHP 用哪个 ini
php --ini
# 2. 错误日志是否开启
php -i | grep error_log
# 3. 日志目录是否存在
ls -ld /var/log/php
# 4. PHP-FPM 是否在跑
systemctl status php8.x-fpm
log_errors = On
error_log = /var/log/php/php-error.log
error_reporting = E_ALL
display_errors = Off
如果你愿意,可以告诉我:
我可以直接帮你定位“为什么你的日志就是没有”。