在 Ubuntu 上使用 Apache2 时,日志相关的常见操作包括:查看日志位置、查看日志内容、配置日志格式、日志轮转、常见问题排查等。下面按实用角度给你讲清楚。
Apache2 的日志一般在:
/var/log/apache2/
常见日志文件:
| 日志文件 | 作用 |
|---|---|
access.log |
访问日志(谁访问了什么) |
error.log |
错误日志(PHP、权限、500 等) |
other_vhosts_access.log |
虚拟主机访问日志(如启用) |
查看示例:
tail -f /var/log/apache2/access.log
tail -f /var/log/apache2/error.log
在 /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>
启用站点:
a2ensite example.conf
systemctl reload apache2
combined 是常用格式:
IP - - [时间] "请求" 状态码 大小 "来源" "浏览器"
示例:
127.0.0.1 - - [10/Oct/2024:12:00:00 +0800] "GET /index.html HTTP/1.1" 200 2326 "https://x.com" "Mozilla/5.0"
# 实时访问日志
tail -f /var/log/apache2/access.log
# 实时错误日志(排错必看)
tail -f /var/log/apache2/error.log
只看错误:
tail -n 100 /var/log/apache2/error.log
Ubuntu 默认用 logrotate:
配置文件:
/etc/logrotate.d/apache2
一般默认已经配置好(按周/按大小切分 + 压缩)。
手动测试:
logrotate -d /etc/logrotate.d/apache2
tail -n 50 /var/log/apache2/error.log
常见原因:
.htaccess 错误错误日志常见:
AH01276: Permission denied
解决:
chown -R www-data:www-data /var/www
chmod -R 755 /var/www
检查:
apache2ctl -S
确认 CustomLog 是否配置。
# 重启 Apache
systemctl restart apache2
# 查看错误
journalctl -u apache2
# 测试配置
apache2ctl configtest
如果你愿意,可以告诉我:
我可以直接给你对应的日志配置示例。