温馨提示×

ubuntu apache日志怎么用

小樊
49
2026-10-06 12:56:42
栏目: 智能运维

在 Ubuntu 上,Apache(通常是 Apache2)的日志主要用于排查错误、分析访问情况和做安全审计。下面从位置、查看方式、常用命令、日志格式、轮转和分析几个方面说明。


一、Apache 日志在哪里

Ubuntu 上 Apache2 的日志默认在:

/var/log/apache2/

常见日志文件:

文件 作用
access.log 访问日志(谁访问了什么)
error.log 错误日志(PHP 报错、502、权限问题等)
other_vhosts_access.log 虚拟主机访问日志(多站点时)

二、实时查看日志(最常用)

1️⃣ 实时看访问日志

sudo tail -f /var/log/apache2/access.log

2️⃣ 实时看错误日志(排错必看)

sudo tail -f /var/log/apache2/error.log

按 Ctrl + C 退出


三、常用查看命令

查看最近 100 行错误

sudo tail -n 100 /var/log/apache2/error.log

搜索关键字(如 500、PHP、permission)

sudo grep "500" /var/log/apache2/error.log
sudo grep "PHP" /var/log/apache2/error.log

统计访问量(按 IP)

awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head

四、Apache 日志格式说明

access.log 示例

192.168.1.10 - - [10/Oct/2024:12:00:00 +0800] "GET /index.php HTTP/1.1" 200 1234

含义:

  • 192.168.1.10:客户端 IP
  • - -:用户身份(通常空)
  • [时间]
  • "请求方法 URL 协议"
  • 200:HTTP 状态码
  • 1234:返回字节数

五、虚拟主机日志(多网站)

如果你配置了多个站点:

sudo tail -f /var/log/apache2/other_vhosts_access.log

或在站点配置中指定:

CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log

六、日志轮转(自动清理)

Ubuntu 用 logrotate 自动管理:

cat /etc/logrotate.d/apache2

一般:

  • 每天或每周轮转
  • 保留 14 天
  • 自动压缩

手动执行:

sudo logrotate -f /etc/logrotate.d/apache2

七、常见排错场景

❌ 网站 500

sudo tail -f /var/log/apache2/error.log

❌ 权限问题

Permission denied: /var/www/html

→ 检查目录权限和 www-data

❌ 404 但文件存在

→ 检查 DocumentRoot、.htaccess、Rewrite 规则


八、进阶(可选)

  • 用 goaccess 可视化分析访问日志
  • 用 fail2ban 防暴力破解
  • 把日志接入 ELK / Grafana Loki

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • Apache 是否用了虚拟主机
  • 是想排查错误还是分析访问

我可以直接给你针对性命令。

0 踩