php多站点logs怎样分别清理_php多站分别清logs法【区分】-php教程

每个站点日志路径必须独立配置,包括Nginx/Apache的access_log/error_log及PHP应用层日志(如Monolog、Laravel logs),否则无法分别清理;需用find或logrotate按路径精准管理,并确保权限与轮转配置正确。

每个站点日志路径必须独立配置

PHP 本身不管理 Web 日志,真正写入 access.log 或 error.log 的是 Web 服务器(Nginx/Apache)。多站点共用一个日志文件就根本没法“分别清理”,所以第一步必须确认每个站点的 access_log 和 error_log 路径是否已隔离。

常见错误:所有 vhost 都指向 /var/log/nginx/access.log,脚本再怎么分站也只会删同一个文件。

  • Nginx 中每个 server 块里明确指定:access_log /var/log/nginx/site-a.access.log;、error_log /var/log/nginx/site-a.error.log notice;
  • Apache 中每个 VirtualHost 内设置:CustomLog "/var/log/apache2/site-b.access.log" combined、ErrorLog "/var/log/apache2/site-b.error.log"
  • 确保目录可写,且 logrotate 或清理脚本有对应权限(比如属组加了 www-data)

用 find + -mtime 清理指定站点日志

不用写复杂 PHP 脚本,Linux 原生命令就能按路径+时间精准清理。关键是把日志路径当作唯一标识,而不是靠域名或配置文件名去“推断”。

例如清理 site-c 近 30 天以外的 .log 文件:

立即学习“PHP免费学习笔记(深入)”;

find /var/log/nginx/site-c.*.log -type f -mtime +30 -delete

注意点:

  • site-c.*.log 可匹配 site-c.access.log、site-c.error.log,也兼容 logrotate 生成的 site-c.access.log.1.gz(如果后缀规则一致)
  • 先用 -print 替代 -delete 预览将删哪些文件,避免误删
  • 若日志被 logrotate 切割过,-mtime 看的是文件修改时间,而 .1.gz 的 mtime 是切割时刻,不是原始日志时间——这点常被忽略

用 logrotate 按站点配独立规则

比手动脚本更稳,适合生产环境。每个站点一份配置,互不影响,还能压缩、轮转、postrotate 执行额外动作(比如通知、切分分析)。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » php多站点logs怎样分别清理_php多站分别清logs法【区分】-php教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4002489+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4002490+
  • 本周更新: 0+
  • 最后更新: 2026-03-16