首页主机资讯Ubuntu下PHP日志配置技巧

Ubuntu下PHP日志配置技巧

时间2025-11-18 18:06:05发布访客分类主机资讯浏览212
导读:Ubuntu下PHP日志配置技巧 一 核心配置与路径定位 使用命令定位配置文件:php --ini,常见路径为:/etc/php/{version}/{sapi}/php.ini(如 /etc/php/8.1/apache2/php.in...

Ubuntu下PHP日志配置技巧

一 核心配置与路径定位

  • 使用命令定位配置文件:php --ini,常见路径为:/etc/php/{ version} /{ sapi} /php.ini(如 /etc/php/8.1/apache2/php.ini/etc/php/8.1/fpm/php.ini/etc/php/8.1/cli/php.ini)。修改前先备份:sudo cp php.ini php.ini.bak
  • 常用 php.ini 关键项(生产建议):
    • error_reporting = E_ALL(记录所有错误)
    • display_errors = Off(不在浏览器暴露错误)
    • log_errors = On(开启错误日志)
    • error_log = /var/log/php_errors.log(自定义错误日志路径)
  • 生效方式:
    • Apachesudo systemctl restart apache2
    • Nginx + PHP-FPMsudo systemctl restart php{ version} -fpmsudo systemctl restart nginx
  • 注意区分 CLI 与 FPM/Apache 的配置,二者可能分别使用不同的 php.ini。

二 日志轮转与权限安全

  • 使用 logrotate 管理 PHP 错误日志,新建:/etc/logrotate.d/php
  • 示例配置(按天轮转、保留 7 天、压缩、自动创建并设置权限):
/var/log/php_errors.log {

    daily
    missingok
    rotate 7
    compress
    notifempty
    create 640 root adm
}

  • 要点:确保日志目录与文件可被 PHP 进程写入(属主/属组与权限合理),避免日志因磁盘占满导致服务异常。

三 访问日志与FPM慢日志

  • Web 访问日志(用于记录请求,与 PHP 错误日志互补):
    • Apache:在虚拟主机或主配置中使用
      • CustomLog ${ APACHE_LOG_DIR} /access.log combined
    • Nginx:在 server 配置中使用
      • access_log /var/log/nginx/access.log;
  • PHP-FPM 慢日志(定位性能瓶颈):在 /etc/php/{ version} /fpm/pool.d/www.conf 中启用
    • slowlog = /var/log/php-fpm/www-slow.log
    • request_slowlog_timeout = 5s(示例:超过 5 秒 的请求记录堆栈)
  • 修改 FPM 后重启:sudo systemctl restart php{ version} -fpm

四 实时查看与常用分析命令

  • 实时查看:
    • Apache:sudo tail -f /var/log/apache2/error.log
    • Nginx:sudo tail -f /var/log/nginx/error.log
    • PHP-FPM:sudo tail -f /var/log/php-fpm.log/var/log/php{ version} -fpm.log
  • 快速分析:
    • 统计错误级别出现次数:grep -E ‘error|warning|notice’ /var/log/php_errors.log | wc -l
    • 查找特定错误:grep ‘SQLSTATE[42S22]’ /var/log/php_errors.log
    • Nginx 访问量前 10 的 IP:
      • cat /var/log/nginx/access.log | awk ‘{ print $1} ’ | sort | uniq -c | sort -nr | head -10
  • 提示:不同系统与配置下日志路径可能略有差异,必要时检查 Web 服务器与 PHP-FPM 的配置文件。

五 应用层日志与最佳实践

  • 使用 Monolog 记录业务日志(便于分级、轮转与多目标输出):
    • 安装:composer require monolog/monolog
    • 示例(按文件大小保留 7 个历史文件):
use Monolog\Logger;
    
use Monolog\Handler\RotatingFileHandler;
    

$log = new Logger('app');
    
$log->
    pushHandler(new RotatingFileHandler('/var/log/my_app.log', 7));
    
$log->
    error('Something went wrong', ['context' =>
     'value']);
    
  • 最佳实践清单:
    • 生产环境务必 display_errors = Off,仅用 log_errors = On 写入日志;
    • PHP 错误日志与 FPM 日志配置 logrotate
    • FPM 启用 slowlog 与合理的 request_slowlog_timeout
    • 使用 Monolog 等库做业务日志分级与结构化输出;
    • 定期审计日志目录权限与磁盘使用,避免日志膨胀影响服务。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu下PHP日志配置技巧
本文地址: https://pptw.com/jishu/750343.html
Debian系统中Tomcat的SSL证书如何安装 怎样优化Debian上Tomcat的线程池设置

游客 回复需填写必要信息