温馨提示×

ubuntu php日志能自定义吗

小樊
39
2026-09-12 09:43:32
栏目: 编程语言

在 Ubuntu 上,PHP 的日志是可以自定义的,但具体“怎么自定义”取决于你想改的是什么层面。下面按常见场景给你说明:


一、PHP 错误日志(最常用)

1️⃣ 修改 php.ini

找到你的 php.ini(位置可能是):

/etc/php/8.1/apache2/php.ini
/etc/php/8.1/cli/php.ini
/etc/php/8.1/fpm/php.ini

常见自定义项:

; 是否记录错误
log_errors = On

; 自定义日志文件路径
error_log = /var/log/php/php_errors.log

; 错误级别
error_reporting = E_ALL

改完后:

sudo systemctl restart apache2
# 或
sudo systemctl restart php8.1-fpm

✅ 这是“自定义 PHP 日志位置”的标准方式


二、按站点 / 项目自定义日志

Apache + PHP

在虚拟主机里:

php_value error_log /var/log/php/site1_error.log
php_value log_errors On

Nginx + PHP-FPM

在 pool 配置里:

; /etc/php/8.1/fpm/pool.d/www.conf
php_admin_value[error_log] = /var/log/php/site1.log
php_admin_value[log_errors] = On

三、CLI 模式自定义日志

CLI 用的是另一个 php.ini:

php -i | grep php.ini

也可以临时指定:

php -d error_log=/tmp/cli.log script.php

四、自定义日志格式(进阶)

PHP 本身不支持像 Nginx/Apache 那样定义“日志格式”,但你可以:

✅ 用 error_log() 写自定义内容

error_log("[" . date('Y-m-d H:i:s') . "] 用户登录失败: " . $user);

✅ 用 Monolog(推荐)

composer require monolog/monolog
$log = new Monolog\Logger('app');
$log->pushHandler(new Monolog\Handler\StreamHandler('/var/log/app.log'));
$log->info('自定义日志内容');

五、系统级日志(syslog)

error_log = syslog

然后看:

journalctl -t php
# 或
/var/log/syslog

总结

需求 是否支持
自定义日志路径 ✅
按站点分日志 ✅
自定义日志格式 ❌(需代码或 Monolog)
CLI 单独日志 ✅

如果你能说清楚:

  • 用的是 Apache / Nginx / CLI
  • 想改的是 错误日志 / 访问日志 / 业务日志

我可以给你更精确的配置示例。

0 踩