在 Ubuntu 上开启 PHP 日志(错误日志)通常取决于你使用的是 PHP-FPM 还是 Apache + mod_php。下面按常见场景说明。
先确认你用的是哪种方式:
php -v
php -i | grep "Server API"
常见结果:
FPM/FastCGI → PHP-FPMApache 2.0 Handler → Apache mod_phpphp.ini先找到 php.ini 位置:
php --ini
或:
php -i | grep "Loaded Configuration File"
常见路径:
/etc/php/8.1/apache2/php.ini/etc/php/8.1/fpm/php.ini/etc/php/8.1/cli/php.ini编辑对应文件:
sudo nano /etc/php/8.1/fpm/php.ini
display_errors = Off
log_errors = On
error_reporting = E_ALL
error_log = /var/log/php/php_errors.log
✅ 生产环境建议
display_errors = Off,避免暴露敏感信息。
sudo mkdir -p /var/log/php
sudo chown www-data:www-data /var/log/php
sudo chmod 755 /var/log/php
sudo systemctl restart php8.1-fpm
(版本号按实际情况)
sudo nano /etc/php/8.1/apache2/php.ini
配置同上:
log_errors = On
error_log = /var/log/php/php_errors.log
sudo systemctl restart apache2
tail -f /var/log/php/php_errors.log
⚠️ 注意:
PHP 错误 不会 出现在 Nginx 的 /var/log/nginx/error.log 中,除非是 502 / 504 等错误。
在 PHP 文件中临时开启(调试用):
ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set('error_log', '/var/log/php/php_errors.log');
error_reporting(E_ALL);
error_log 路径不存在www-data 写权限php.ini<?php
error_log("PHP log test");
如果你愿意,可以告诉我:
我可以给你一套 完全针对你环境的配置命令 ✅