AWStats 配置参数详解(awstats.<site>.conf)
以 AWStats 7.8/8.0 配置文件为底本逐组详解核心参数:日志源、站点身份、存储、Web 访问控制、统计过滤、URL 解析、检测级别、报表显示、栏目开关、插件与 ExtraSection 自定义报表,默认值实机 grep 实证并附过滤参数生效实测。
AWStats 配置参数详解(awstats.<site>.conf)
目标:以 AWStats 配置文件为底本逐组详解全部核心参数:日志源、站点身份、存储、Web 访问控制、统计过滤、URL 解析行为、特征检测级别、报表显示、栏目开关、插件与自定义报表十一组,标注真实默认值并给出可运行的生产模板。本文基于 Ubuntu 22.04 实机(apt 安装 7.8 与官方 8.0 两个版本的配置文件)逐项 grep 实证,过滤类参数附实测生效回显。
一、环境信息
| 项目 | 值 |
|---|---|
| 操作系统 | Ubuntu 22.04.5 LTS |
| AWStats | 7.8-2ubuntu0.22.04.1(apt)与 8.0 build 20240604(tar.gz)双版本对照 |
| 配置文件底本 | /etc/awstats/awstats.conf(7.8,1620 行、136 个有效参数);/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf(8.0,1624 行) |
| 示例站点 | www.example.com(Apache combined 日志) |
AWStats 的配置体系只有一层文件约定:-config=<站点标识> 对应 /etc/awstats/awstats.<站点标识>.conf;每个被分析站点一份文件,文件间无继承关系(可用 Include 指令引入公共片段,见 5.11 节)。
二、前置条件
- 已按《AWStats 裸机安装指南(apt + Apache CGI 集成实测)》完成安装,
/usr/lib/cgi-bin/awstats.pl -version可输出版本; - 有一份站点配置文件可作参照(7.8 在 /etc/awstats/awstats.conf;8.0 用模板 awstats.model.conf):
grep -cE '^[A-Za-z0-9_]+=' /etc/awstats/awstats.conf
# 实测回显:136
三、参数查看与修改方式
AWStats 配置文件是纯文本 键=值 形式,# 为注释,### 无特殊含义(大段落标题用 #---- 分隔线+文字)。三个实用命令:
# 1. 查看某参数当前值(含所在行号)
grep -nE '^(LogFile|LogFormat|SiteDomain)=' /etc/awstats/awstats.www.example.com.conf
# 实测回显:
# 50:LogFile="/var/log/apache2/access.log"
# 126:LogFormat=1
# 157:SiteDomain="www.example.com"
# 2. 批量列出全部有效参数
grep -E '^[A-Za-z0-9_]+=' /etc/awstats/awstats.www.example.com.conf
# 3. 修改后语法自检(没有专门 lint 命令,跑一次 -update 看 Phase 1 是否正常即可)
sudo /usr/lib/cgi-bin/awstats.pl -config=www.example.com -update | head -2
# 实测回显:
# Create/Update database for config "/etc/awstats/awstats.www.example.com.conf" by AWStats version 7.8 (build 20200416)
# From data in log file "/var/log/apache2/access.log"...
修改过滤/解析类参数的生效规则(实测):AWStats 是增量记账模型,Skip*/Only*/URLWithQuery 等解析期参数只影响「新解析的日志行」,已入库的历史统计不会回溯。要让其生效必须删除当月数据文件后重灌:
sudo rm -f /var/lib/awstats/awstats102026.www.example.com.txt
sudo /usr/lib/cgi-bin/awstats.pl -config=www.example.com -update
参数写错(键名拼错、值类型不对)不会报错,只会被静默忽略——AWStats 启动时只对未知键提示 Warning: ... unknown parameter(DebugMessages=1 时可见),改完必须用实际报表数值验证。
四、参数总览(分组索引)
136 个有效参数按功能分为十一组,核心参数如下表(默认值均为 7.8 实机 grep 结果,8.0 模板同值):
| 组 | 参数 | 默认值 | 作用一句话 |
|---|---|---|---|
| 日志源 | LogFile | /var/log/httpd/mylog.log | 日志文件路径(支持命令) |
| 日志源 | LogType | W | 日志类型 W/S/M/F(Web/流媒体/邮件/FTP) |
| 日志源 | LogFormat | 4 | 日志格式代号或自定义串 |
| 日志源 | LogSeparator | 空格 | 字段分隔符(自定义格式时用) |
| 站点身份 | SiteDomain | "" | 站点主域名 |
| 站点身份 | HostAliases | localhost 127.0.0.1 | 全部别名 |
| 站点身份 | DNSLookup | 1 | 反向 DNS 解析级别 |
| 存储 | DirData | /var/lib/awstats | 分析数据库目录 |
| 存储 | DirCgi | /cgi-bin | CGI 脚本的 URL 路径 |
| 存储 | DirIcons | /awstats-icon | 图标库的 URL 路径 |
| 存储 | BuildHistoryFormat | text | 数据文件格式 text/xml |
| 交互 | AllowToUpdateStatsFromBrowser | 0 | 浏览器点击即时更新 |
| 交互 | AllowFullYearView | 2 | 跨年视图权限 |
| 交互 | EnableLockForUpdate | 0 | 更新加锁防并发 |
| 安全 | AllowAccessFromWebToAuthenticatedUsersOnly | 0 | CGI 页面仅限认证用户 |
| 过滤 | SkipHosts / SkipUserAgents / SkipFiles | "" | 黑名单过滤 |
| 过滤 | NotPageList | css js class gif ... | 不算「页面」的扩展名 |
| 过滤 | ValidHTTPCodes | 200 304 | 计入统计的 HTTP 状态码 |
| 解析 | URLWithQuery | 0 | URL 是否含查询串 |
| 解析 | URLQuerySeparators | ?; | 查询串分隔符 |
| 检测 | LevelFor* 八件套 | 2(Worms 为 0) | 各类特征检测开关/级别 |
| 显示 | Lang | auto | 报表语言 |
| 显示 | MaxRowsInHTMLOutput | 10000 | 表格最大行数 |
| 显示 | Expires | 0 | 报表页缓存过期秒数 |
| 栏目 | ShowSummary | UVPHB | 主页汇总栏列 |
| 插件 | LoadPlugin | (7.8 启用 hashfiles) | 插件加载 |
| 自定义报表 | ExtraTrackedRowsLimit | 500 | Extra 报表行数保护 |
五、核心参数分类详解
5.1 日志源参数(LogFile / LogType / LogFormat / LogSeparator)
LogFile(默认 /var/log/httpd/mylog.log):被解析的日志路径。三个进阶用法:
- 相对路径按「前一天」滚动:
LogFile="/var/log/nginx/access.log.%YYYY-24-%MM-24-%DD-24"——时间占位符%YYYY-24表示当前时间减 24 小时的年份,适合配合 logrotate 每日定时分析昨天的归档; - 支持管道命令:
LogFile="gzip -d </var/log/nginx/access.log.1.gz |"(结尾的|表示这是一个命令),直接消化 .gz 归档; - 绝对路径无占位符 = 每次都从头解析该文件的「新增行」(增量游标记录在数据文件里)。
LogType(默认 W):W=Web 访问、S=流媒体、M=邮件、F=FTP。决定报表形态与 5.6 节部分参数的适用性(邮件日志配套 ValidSMTPCodes,Web 日志配套 ValidHTTPCodes)。
LogFormat(默认 4):预置代号——1=Apache/NCSA combined(XLF/ELF)、2=IIS 旧格式、3=WebStar、4=NCSA common(CLF)、5=W3C 扩展(IIS 5+)。非预置格式写自定义串,字段用空格分隔的 % 占位符表达,例如 Nginx 自定义格式的典型映射(实测 8.0 模板注释同款写法):
# Nginx log_format 自定义时:$remote_addr 对应 %host,$time_local 对应 %time1,
# $request 对应 %methodurl,$status 对应 %code,$body_bytes_sent 对应 %bytesd,
# $http_referer 对应 %referer,$http_user_agent 对应 %uaquot
LogFormat="%host %other %other %time1 %methodurl %code %bytesd %referer %uaquot"
💡 技术拓展:LogFormat 与 Web 服务器日志格式的关系——Apache 默认 combined 对应代号 1;Nginx 默认 main 格式(
$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent")与 combined 完全同构,同样用 1;只有自定义过 log_format 的 Nginx 才需要自定义串。判断标准:拿一行真实日志对照格式字段数,用tail -1 /var/log/nginx/access.log核对。Nginx 日志与配置指令体系详见《Nginx 配置参数详解》。
LogSeparator(默认 " "):仅自定义 LogFormat 且分隔符非空格时设置(如制表符 "\t")。
5.2 站点身份参数(SiteDomain / HostAliases / DNSLookup 系)
SiteDomain(默认 ""):站点主域名,报表标题、入口页归一、内部链接判断都依赖它,必填。
HostAliases(默认 "localhost 127.0.0.1"):站点全部可到达的别名(含不带 www 的裸域)。同一日志里出现多个虚拟主机时,AWStats 用它判断哪些行属于本站。支持 REGEX[\.example\.com$] 正则写法。
DNSLookup(默认 1):反向 DNS 解析级别。0=不解析(IP 直接显示,最快);1=仅「缺失时」解析(本次实测默认值);2=全部解析(最慢,仅旧日志离线回灌时用)。解析结果写缓存文件。生产高流量站点建议 0,改用 geoip 插件出地理分布(见 5.10)。
DynamicDNSLookup(默认 0):CGI 动态页即时更新时是否做 DNS 解析,默认关闭合理。
DNSStaticCacheFile(默认 dnscache.txt)/ DNSLastUpdateCacheFile(默认 dnscachelastupdate.txt):解析结果缓存文件名,落在 DirData。实测数据目录中可见 dnscachelastupdate.www.example.com.hash 即由后者生成。
SkipDNSLookupFor(默认 ""):跳过解析的 IP 列表(如已知的内部爬虫段)。
5.3 存储与数据文件参数(DirData 系)
DirData(默认 /var/lib/awstats):分析数据库目录,运行用户需写权限。多站点用不同 DirData 可完全隔离数据(本文实测 8.0 实例即用 /var/lib/awstats80)。
DirCgi(默认 /cgi-bin)/ DirIcons(默认 /awstats-icon):报表页内部链接用的 URL 前缀,须与 Apache 的 ScriptAlias/Alias 一致(对应《AWStats 裸机安装指南(apt + Apache CGI 集成实测)》 4.4 节的集成配置)。
CreateDirDataIfNotExists(默认 0):DirData 不存在时自动创建,设 1 可省去手工 mkdir。
BuildHistoryFormat(默认 text):数据文件格式,text 人类可读、xml 便于 XSLT 二次加工(8.0 支持)。改格式后旧数据文件不兼容,需重灌。
BuildReportFormat(默认 html):报表输出格式,html 或 xhtml。
KeepBackupOfHistoricFiles(默认 0):重灌当月数据前是否备份旧文件为 .bak,谨慎运维可开。
PurgeLogFile(默认 0)/ ArchiveLogRecords(默认 0):解析后是否删除/归档源日志。保持 0——让 logrotate 管日志生命周期,AWStats 只做只读消费,误配 PurgeLogFile=1 会把日志删掉。
SaveDatabaseFilesWithPermissionsForEveryone(默认 0):数据文件权限是否放宽为所有人可读,保持 0。
EnableLockForUpdate(默认 0):更新加锁。多调度器并存(cron + 手工)时建议设 1,防两个 -update 同时写同一数据文件导致损坏。
5.4 Web 访问控制参数(CGI 模式安全)
AllowToUpdateStatsFromBrowser(默认 0):报表页显示「Update now」按钮,点一下即时解析日志。方便但把解析负载挂到了 Web 请求路径上,高流量站点保持 0(定时 cron 负责)。
AllowFullYearView(默认 2):跨年聚合视图权限,0=禁止、1=仅管理员(认证用户)、2=所有人。全年视图要聚合 12 个月数据文件,大站点内存开销显著,建议 1。
AllowAccessFromWebToAuthenticatedUsersOnly(默认 0):设 1 后 CGI 页仅限认证用户;配合 AllowAccessFromWebToFollowingAuthenticatedUsers(默认 "",名单)与 AllowAccessFromWebToFollowingIPAddresses(默认 "",IP 白名单)。⚠️ 实测口径:这套参数是 AWStats 应用层的第二道防线,第一道永远是 Web 服务器的认证/授权(B1 篇 4.4 的 BasicAuth),两层叠加更稳。
5.5 统计过滤参数(Skip* / Only* / ValidHTTPCodes)
黑名单组(命中即丢弃,不进统计):
| 参数 | 默认 | 典型值 |
|---|---|---|
| SkipHosts | "" | "127.0.0.1 REGEX[^192\.168\.]"(本机与内网健康检查流量) |
| SkipUserAgents | "" | "REGEX[Zabbix]"(监控系统探针 UA) |
| SkipFiles | "" | "/wp-login.php /healthcheck" |
| SkipReferrersBlackList | "" | 垃圾 referer 黑名单文件路径(每行一条) |
白名单组(与 Skip* 相反,仅保留命中者):OnlyHosts / OnlyUserAgents / OnlyUsers(HTTP 认证用户)/ OnlyFiles。
NotPageList(默认 "css js class gif jpg jpeg png bmp ico rss xml swf eot woff woff2"):命中这些扩展名的请求计为 hit 而非 page,直接影响 Pages 指标口径。
ValidHTTPCodes(默认 "200 304"):计入「正常访问」的状态码。要把跳转计入就补 30x,但会把爬虫重定向也算进流量——保持默认并在 SkipFiles/SkipHosts 层面治理噪音更可控。
过滤参数生效实测(本文实测记录):给 8.0 实例配置 SkipFiles="/wp-login.php",删除当月数据文件重灌 322 行日志:
sudo perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=local8 -update 2>&1 | grep -E 'qualified|dropped'
# 实测回显:
# Found 1 dropped records,
# Found 321 new qualified records.
322 → 321(dropped 1):/wp-login.php 那一条被滤掉,参数生效验证通过。
5.6 URL 与解析行为参数
| 参数 | 默认 | 说明 |
|---|---|---|
| URLNotCaseSensitive | 0 | URL 大小写是否视为相同(Windows/IIS 站点设 1) |
| URLWithAnchor | 0 | 是否统计 URL 的 # 锚部分 |
| URLQuerySeparators | "?;" | 查询串起始分隔符集合 |
| URLWithQuery | 0 | 页面统计是否区分查询串(动态站点设 1,否则 /list?page=1 与 /list?page=2 合并为一行) |
| URLWithQueryWithOnlyFollowingParameters | "" | 配合上一项:仅保留指定参数(如 "p lang") |
| URLWithQueryWithoutFollowingParameters | "" | 反向排除指定参数(sessionid 这类噪音) |
| URLReferrerWithQuery | 0 | 来源页统计是否含查询串 |
| AuthenticatedUsersNotCaseSensitive | 0 | 认证用户名大小写归一 |
| DefaultFile | "index.php index.html" | 目录默认首页,用于 / 与 /index.html 的归一 |
| NbOfLinesForCorruptedLog | 50 | 日志头部视为损坏行的容忍行数(IIS 常有文件头) |
| DecodeUA | 0 | 对 User-Agent 做 URL 解码(个别代理会编码 UA) |
| WrapperScript | "" | CGI 模式外包一层包装脚本时的脚本名 |
| MiscTrackerUrl | "/js/awstats_misc_tracker.js" | 杂项追踪(屏幕宽度/收藏等可选功能)的 JS 路径,不用相关功能可不部署 |
5.7 特征检测级别参数(LevelFor* 八件套)
实测默认值与注释(7.8 与 8.0 同):
grep -nE '^LevelFor' /etc/awstats/awstats.conf
# 实测回显:
# 867:LevelForBrowsersDetection=2 # 0 disables Browsers detection.
# 870:LevelForOSDetection=2 # 0 disables OS detection.
# 872:LevelForRefererAnalyze=2 # 0 disables Origin detection.
# 874:LevelForRobotsDetection=2 # 0 disables Robots detection.
# 876:LevelForSearchEnginesDetection=2 # 0 disables Search engines detection.
# 878:LevelForKeywordsDetection=2 # 0 disables Keyphrases/Keywords detection.
# 880:LevelForFileTypesDetection=2 # 0 disables File types detection.
# 882:LevelForWormsDetection=0 # 0 disables Worms detection.
0=关闭该类检测(省 CPU),2=标准级别(个别参数支持 4 的精细级别)。默认全部开启仅 Worms 关闭; Worms 检测特征库停留在 2000 年代的蠕虫家族,现代意义有限,保持 0。
5.8 报表显示参数
| 参数 | 默认 | 说明 |
|---|---|---|
| Lang | "auto" | 报表语言;auto 按浏览器 Accept-Language。固定中文:Lang="cn"(8.0 实测改后静态页即中文) |
| DirLang | "/usr/share/awstats/lang" | 语言包目录(8.0 tar.gz 版在 wwwroot/lang) |
| UseFramesWhenCGI | 1 | CGI 页用框架布局(左菜单右内容)。实测 CGI 首页即 frameset,awstats.pl?config=...&framename=mainright 为主内容帧;设 0 则单页输出 |
| DetailedReportsOnNewWindows | 1 | 明细报表开新窗口 |
| Expires | 0 | 报表页 HTTP 缓存过期秒数(CGI 模式有效,0=不缓存) |
| MaxRowsInHTMLOutput | 10000 | 表格行数上限,防大站报表爆炸 |
| FirstDayOfWeek | 1 | 周起始日(1=周一) |
| MaxLengthOfShownURL | 64 | URL 显示截断长度 |
| ShowLinksOnUrl | 1 | URL 列表是否可点击 |
| Logo / LogoLink | awstats_logo6.png / 官网 | 报表页 logo |
| StyleSheet | "" | 外部 CSS 路径,套用站点风格 |
| HTMLHeadSection / HTMLEndSection | "" | 注入报表页首/尾的自定义 HTML(加公司页眉常用) |
| MetaRobot | 0 | 报表页 robots meta(0=不输出) |
| color_* 十七项 | 见默认 | 报表配色,逐项可覆盖(实测默认 color_Background="FFFFFF" color_TableBGTitle="CCCCDD" 等) |
5.9 报表栏目开关(Show* 系列与列代码表)
Show* 系列控制主页面各报表的展示与列组合,值为列代码串。官方代码表(配置文件注释原文):
| 代码 | 含义 |
|---|---|
| U | Unique visitors(独立访客) |
| V | Visits(访问次数) |
| P | Number of pages(页面数) |
| H | Number of hits(请求数) |
| B | Bandwidth(流量) |
| L | Last access date(最近访问时间) |
| E | Entry pages(入口页) |
| X | Exit pages(出口页) |
| C | Web compression(压缩统计) |
| M | Average mail size(邮件平均大小) |
值的三种形态:0=不显示;1=显示(默认列);代码串=显示指定列。核心实测默认值:
grep -nE '^Show(Summary|MonthStats|HoursStats|HostsStats|PagesStats|OriginStats|HTTPErrorsStats)=' /etc/awstats/awstats.conf
# 实测回显:
# 980:ShowSummary=UVPHB
# 985:ShowMonthStats=UVPHB
# 1000:ShowHoursStats=PHB
# 1010:ShowHostsStats=PHBL
# 1045:ShowPagesStats=PBEX
# 1080:ShowOriginStats=PH
# 1100:ShowHTTPErrorsStats=1
另有两类配套:AddDataArray* 四项(默认 1,决定月/日/周/时分布是否保留明细数组,关掉可缩小数据文件);邮件/流媒体专用栏目(ShowEMailSenders 等)在 LogType=W 下无效,保持默认 0。
5.10 插件参数(LoadPlugin)
插件是 .pm 文件,放 plugins 目录(7.8:/usr/share/awstats/plugins;8.0:wwwroot/cgi-bin/plugins),配置文件里用 LoadPlugin="插件名" 启用,可多行。实测 7.8 的 Debian 打包默认启用了一个:
grep -n '^LoadPlugin=' /etc/awstats/awstats.conf
# 实测回显:
# 1349:LoadPlugin="hashfiles"
常用插件与依赖(配置文件注释原文整理):
| 插件 | 依赖 Perl 模块 | 作用 |
|---|---|---|
| hashfiles | 无 | 默认启用,用文件哈希加速历史数据 |
| tooltips | 无 | 报表悬浮提示(增大页面体积) |
| decodeutfkeys | Encode、URI::Escape | 搜索关键词 UTF-8 解码(中文站基本必开) |
| geoip / geoip_city / geoip_region_maxmind 等 | Geo::IP 系 + MaxMind 数据库 | IP 地理定位(替代 DNSLookup 的国家/城市分布) |
| hostinfo | 无 | 主机明细页附 whois 链接 |
启用示例(实测依赖安装 + 配置行):
sudo apt install -y libgeo-ip-perl
# 在 awstats.<site>.conf 中:
# LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"
5.11 自定义报表(ExtraSection)与 INCLUDES
ExtraSection 是 AWStats 的报表扩展机制:按条件对日志行做分组统计(如「按商品 ID 统计下单页」「按文章 ID 统计阅读量」),每组参数后缀 1..N 可定义多张自定义报表。配置文件注释给出的完整模板(实测摘录):
#ExtraSectionCodeFilter1="200 304"
#ExtraSectionCondition1="URL,\/cgi\-bin\/order\.cgi||URL,\/cgi\-bin\/order2\.cgi"
#ExtraSectionFirstColumnTitle1="Product ID"
#ExtraSectionFirstColumnValues1="QUERY_STRING,productid=([^&]+)"
#ExtraSectionFirstColumnFormat1="%s"
#ExtraSectionStatTypes1=PL
#ExtraSectionAddAverageRow1=0
#ExtraSectionAddSumRow1=1
#MaxNbOfExtra1=20
#MinHitExtra1=1
字段逻辑:CodeFilter 限定状态码 → Condition 限定命中行(URL,正则||URL,正则 或关系)→ FirstColumnValues 从指定字段提取分组键(正则捕获组)→ StatTypes 定义统计列(P/H/B/U 等)。全局保护参数 ExtraTrackedRowsLimit(实测默认 500)限制单张自定义报表最大行数,防止提取键过于发散打爆内存,超出时 AWStats 直接报错停止——做商品/文章级统计时按需调大。
INCLUDES:配置文件末尾支持 Include "公共片段路径" 把公共参数拆到独立文件维护,多站点服务器用它收敛 LogFormat/Skip* 等共性配置。
六、生产配置模板
模板一:通用 Web 站点(2C4G 服务器、单站、日志 <5GB/月,Apache combined)——在 7.8 默认配置基础上只改以下项:
LogFile="/var/log/apache2/access.log"
LogFormat=1
SiteDomain="www.example.com"
HostAliases="www.example.com localhost 127.0.0.1 REGEX[\.example\.com$]"
DNSLookup=0
DirData="/var/lib/awstats"
AllowToUpdateStatsFromBrowser=0
EnableLockForUpdate=1
SkipHosts="127.0.0.1 REGEX[^192\.168\.]"
SkipFiles="/healthcheck"
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"
Lang="cn"
AllowFullYearView=1
模板二:高流量站点(16C32G、Nginx 自定义日志、日志 >50GB/月,多站隔离)——差异项:
LogFile="/var/log/nginx/example.access.log"
LogFormat="%host %other %other %time1 %methodurl %code %bytesd %referer %uaquot"
DirData="/var/lib/awstats/example.com"
CreateDirDataIfNotExists=1
DNSLookup=0
LevelForWormsDetection=0
MaxRowsInHTMLOutput=50000
URLWithQuery=1
URLWithQueryWithoutFollowingParameters="utm_source utm_medium utm_campaign"
ExtraTrackedRowsLimit=2000
两个模板的内存/磁盘口径:AWStats 分析期内存与「当月 host/page 组合数」正相关,单站百万级组合约需 1–2GB 峰值内存;数据文件(text 格式)约为当月去重组合数的几十倍字节,50GB 原始日志的单月数据文件通常在 100–500MB 量级——预留 2GB 内存与 5GB 数据磁盘是常规起配。
七、常见问题
Q1:改了 SkipFiles/SkipHosts 但报表数值没变?
增量模型不回溯历史(见第三节生效规则):删当月数据文件重灌。本文实测:SkipFiles 生效需 rm /var/lib/awstats/awstatsMMYYYY.<site>.txt 后重跑 -update,回显由 322 qualified 变为 1 dropped + 321 qualified。
Q2:-update 报 Error: SiteDomain parameter not defined?
SiteDomain 为空时 CGI/输出模式拒绝出页。填站点主域名即可。
Q3:Lang="cn" 后报表部分文字仍是英文?
lang 包缺失对应条目时回退英文(AWStats 中文包翻译不完全,属正常现象);确认 DirLang 指向的目录里有 cn 语言文件:ls /usr/share/awstats/lang/ | grep cn。
Q4:多个站点日志混在一个 access.log 里怎么拆?
若日志带 vhost 字段(%virtualname),用自定义 LogFormat 加 %virtualname,并让每个站点的 HostAliases 互斥;否则建议改 Web 服务器按站分开记录(Apache 的 CustomLog per-vhost,Nginx 的 access_log per-server)。
Q5:数据文件多久轮转一次?误删了怎么办?
按自然月分文件(awstatsMMYYYY.site.txt),跨月自动新建。误删后只要原始日志还在,重跑 -update 即可完整重建(但要求 LogFile 覆盖全月,配合 5.1 的占位符路径逐日重灌)。
八、参考链接
- 官方配置文档:https://awstats.sourceforge.io/docs/awstats_config.html
- 模板文件全文(8.0):https://github.com/eldy/AWStats/blob/main/wwwroot/cgi-bin/awstats.model.conf
- 官方插件清单:https://awstats.sourceforge.io/docs/awstats_contrib.html#PLUGINS
- ExtraSection 官方说明(FAQ EXTRASECTION):https://awstats.sourceforge.io/docs/awstats_faq.html#EXTRA
- 本专栏相关:《AWStats 介绍与选型指南》、《AWStats 裸机安装指南(apt + Apache CGI 集成实测)》、《AWStats 常用 CLI 命令详解(awstats.pl 与日志预处理链)》、《Nginx 配置参数详解》