在 Ubuntu 上配置 PHP 日志,通常分为 PHP 自身错误日志 和 Web 服务器(Apache/Nginx)相关日志 两部分。下面按常见场景说明。
php --ini
或
php -i | grep "Loaded Configuration File"
常见路径:
/etc/php/8.1/apache2/php.ini/etc/php/8.1/cli/php.ini/etc/php/8.1/fpm/php.ini(版本号按你实际安装调整,如 7.4 / 8.2)
编辑对应 php.ini:
sudo nano /etc/php/8.1/fpm/php.ini
关键配置项:
; 显示错误(开发环境开,生产环境关)
display_errors = Off
; 记录错误日志
log_errors = On
; 日志文件路径
error_log = /var/log/php/php_errors.log
; 错误报告级别
error_reporting = E_ALL
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 systemctl restart apache2
Apache 错误日志中也会包含 PHP 错误:
sudo tail -f /var/log/apache2/error.log
若想单独记录:
php_value log_errors 1
php_value error_log /var/log/php/apache_php_errors.log
放在虚拟主机或 .htaccess 中。
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
catch_workers_output = yes
php_admin_value[error_log] = /var/log/php/fpm-php.log
php_admin_value[log_errors] = On
重启:
sudo systemctl restart php8.1-fpm
sudo tail -f /var/log/nginx/error.log
display_errors = On
error_reporting = E_ALL
# 查看 PHP 日志
tail -f /var/log/php/php_errors.log
# 查看 PHP 配置
php -i | grep error_log
# 测试 PHP 是否写日志
<?php
error_log("test log");
如果你能告诉我:
我可以给你一份完全对应的配置文件示例。