温馨提示×

Ubuntu Apache2如何日志

小樊
34
2026-09-20 13:05:16
栏目: 智能运维

在 Ubuntu 上,Apache2 的日志管理主要涉及日志位置、日志类型、查看方式、轮转(rotate)和自定义配置。下面按实用角度说明。


一、Apache2 日志默认位置(Ubuntu)

Ubuntu 中 Apache2 日志通常在:

/var/log/apache2/

常见文件:

  • access.log:访问日志
  • error.log:错误日志
  • other_vhosts_access.log:虚拟主机访问日志(如启用)
  • ssl_access.log / ssl_error.log:SSL 相关日志(如启用 HTTPS)

二、查看日志的常用命令

1. 实时查看访问日志

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

2. 实时查看错误日志(排错最常用)

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

3. 查看最近 100 行

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

4. 搜索关键字(如 500 错误)

sudo grep "500" /var/log/apache2/access.log

三、日志格式说明

access.log 示例

127.0.0.1 - - [12/Jan/2026:10:00:00 +0800] "GET /index.html HTTP/1.1" 200 2326

含义:

  • IP
  • 时间
  • 请求方法 & URL
  • 状态码(200 / 404 / 500)
  • 响应大小

error.log 示例

[Sun Jan 12 10:01:00.123456 2026] [php:error] [pid 1234] script '/var/www/html/test.php' not found

四、虚拟主机日志配置(推荐)

/etc/apache2/sites-available/xxx.conf 中:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example

    ErrorLog ${APACHE_LOG_DIR}/example_error.log
    CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>

修改后:

sudo a2ensite xxx
sudo systemctl reload apache2

五、日志轮转(自动切割)

Ubuntu 使用 logrotate

配置文件:

/etc/logrotate.d/apache2

通常默认已配置:

  • daily / weekly
  • 自动压缩
  • 保留一定时间

手动测试:

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

强制执行:

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

六、常见排错场景

1. 网站 500 错误

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

2. 找不到文件(404)

access.log 中请求路径是否正确

3. 权限问题

Permission denied: /var/www/html

→ 检查目录权限和 www-data 用户


七、常见问题

Q:没有 access.log?
可能未启用 CustomLog,检查虚拟主机配置。

Q:日志不更新?

sudo systemctl restart apache2

如果你有具体需求(比如:

  • 按日期分割日志
  • 记录真实用户 IP(反向代理后)
  • 分析访问统计
  • 禁用某个日志)

可以告诉我,我给你具体配置。

0