centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做)
bash
# 安装必要依赖
yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime
systemctl enable httpd # 设置 Apache 开机自启
systemctl start httpd # 启动 Apache
二、安装 AWStats(二选一)
方式 1:yum 安装(推荐,简单快速)
bash
yum install -y awstats
方式 2:源码安装(自定义版本,灵活)
bash
# 1. 下载最新版本(访问 https://github.com/eldon/awstats/releases 找最新 tar.gz 链接)
cd /tmp
wget https://github.com/eldon/awstats/archive/refs/tags/7.8.tar.gz # 若 7.8 失效,换其他版本# 2. 解压并移动到指定目录
tar -zxvf 7.8.tar.gz
mv awstats-7.8 /usr/local/awstats# 3. 创建软链接(方便 Apache 访问)
ln -s /usr/local/awstats/wwwroot/cgi-bin/ /var/www/cgi-bin/awstats
ln -s /usr/local/awstats/wwwroot/icon/ /var/www/html/awstatsicons
三、配置 AWStats(关键步骤)
1. 创建站点配置文件
bash
# yum 安装路径
cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.yourdomain.conf# 源码安装路径
cp /usr/local/awstats/config/awstats.model.conf /usr/local/awstats/config/awstats.yourdomain.conf
- 替换
yourdomain
为你的域名或服务器 IP(如10.10.10.128
)。
2. 编辑配置文件
bash
# yum 安装路径
vim /etc/awstats/awstats.yourdomain.conf# 源码安装路径
vim /usr/local/awstats/config/awstats.yourdomain.conf
修改以下关键参数(根据实际情况调整):
conf
LogFile="/var/log/httpd/access_log" # Apache 访问日志路径(默认)
SiteDomain="10.10.10.128" # 你的域名或服务器 IP
HostAliases="localhost 127.0.0.1" # 别名
DirData="/var/lib/awstats" # 统计数据存储目录
Lang="cn" # 启用中文界面(新增)
四、配置 Apache 访问(两种安装方式不同)
方式 1:yum 安装的配置
bash
# 1. 创建 Apache 配置文件
vim /etc/httpd/conf.d/awstats.conf# 2. 写入以下内容(限制特定 IP 访问,增强安全)
<Directory "/usr/share/awstats/wwwroot">Options NoneAllowOverride NoneOrder allow,denyAllow from 127.0.0.1 # 允许本地访问(必须)Allow from 10.10.10.128 # 允许服务器自身 IP 访问# 如需远程访问,添加你的客户端 IP:Allow from 192.168.1.100
</Directory># 3. 重启 Apache
要加上前面的部署
以下是 CentOS 7 完整部署 AWStats 并设置中文界面的流程,涵盖 环境准备、安装(yum / 源码)、配置、中文设置、验证 全流程,按步骤执行即可:
一、环境准备(必做)
bash
# 1. 安装基础依赖
yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime# 2. 启动并设置 Apache 开机自启
systemctl enable httpd
systemctl start httpd# 3. 关闭防火墙(测试环境,生产环境需按需开放端口)
systemctl stop firewalld
systemctl disable firewalld
二、安装 AWStats(二选一,推荐 yum)
方式 1:yum 安装(简单快速)
bash
yum install -y awstats
方式 2:源码安装(自定义版本)
bash
# 1. 下载 AWStats(访问 https://github.com/eldon/awstats/releases 找最新版本)
cd /tmp
wget https://github.com/eldon/awstats/archive/refs/tags/7.8.tar.gz # 示例版本,可替换# 2. 解压并移动到指定目录
tar -zxvf 7.8.tar.gz
mv awstats-7.8 /usr/local/awstats# 3. 创建软链接(让 Apache 能访问 CGI 和图标)
ln -s /usr/local/awstats/wwwroot/cgi-bin/ /var/www/cgi-bin/awstats
ln -s /usr/local/awstats/wwwroot/icon/ /var/www/html/awstatsicons
三、配置 AWStats(关键步骤)
1. 创建站点配置文件
bash
# yum 安装路径(通用)
cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.yourdomain.conf# 源码安装路径(仅源码安装时用)
# cp /usr/local/awstats/config/awstats.model.conf /usr/local/awstats/config/awstats.yourdomain.conf
- 替换
yourdomain
为你的 域名或服务器 IP(如10.10.10.128
)。
2. 编辑配置文件
bash
# yum 安装路径(通用)
vim /etc/awstats/awstats.yourdomain.conf# 源码安装路径(仅源码安装时用)
# vim /usr/local/awstats/config/awstats.yourdomain.conf
修改以下关键参数(根据实际情况调整):
conf
LogFile="/var/log/httpd/access_log" # Apache 访问日志路径(默认)
SiteDomain="10.10.10.128" # 你的域名或服务器 IP
HostAliases="localhost 127.0.0.1" # 别名(可追加其他域名/IP)
DirData="/var/lib/awstats" # 统计数据存储目录
Lang="cn" # 启用中文界面(核心!)
3. 创建数据存储目录
bash
mkdir -p /var/lib/awstats
chown -R root:root /var/lib/awstats # 权限设置(yum 安装默认用户是 root)
四、配置 Apache 访问(两种安装方式不同)
方式 1:yum 安装的 Apache 配置
bash
# 1. 创建 Apache 配置文件
vim /etc/httpd/conf.d/awstats.conf# 2. 写入以下内容(限制访问 IP,增强安全)
<Directory "/usr/share/awstats/wwwroot">Options NoneAllowOverride NoneOrder allow,denyAllow from 127.0.0.1 # 允许本地访问(Cron 任务需要)Allow from 10.10.10.128 # 允许服务器自身 IP 访问# 如需远程访问,添加你的客户端 IP:Allow from 192.168.1.100
</Directory># 3. 重启 Apache 生效
systemctl restart httpd
要想外部浏览器访问需要添加 Require all granted
方式 2:源码安装的 Apache 配置
bash
# 1. 创建 Apache 配置文件
vim /etc/httpd/conf.d/awstats.conf# 2. 写入以下内容(基于软链接路径)
Alias /awstats /var/www/cgi-bin/awstats
<Directory "/var/www/cgi-bin/awstats">Options ExecCGI -IndexesAddHandler cgi-script .plOrder allow,denyAllow from 127.0.0.1 # 允许本地访问Allow from 10.10.10.128 # 允许服务器自身 IP 访问
</Directory># 3. 重启 Apache 生效
systemctl restart httpd
五、设置定时任务(自动更新统计数据)
bash
# 1. 创建 Cron 任务文件
vim /etc/cron.d/awstats# 2. 写入定时任务(每 1 小时更新一次,可调整频率)
0 * * * * root /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=yourdomain -update >/dev/null 2>&1# 源码安装时,替换路径为:
# 0 * * * * root /var/www/cgi-bin/awstats/awstats.pl -config=yourdomain -update >/dev/null 2>&1# 3. 重启 Cron 服务
systemctl restart crond
systemctl enable crond
- 替换
yourdomain
为你的配置文件名前缀(如10.10.10.128
)。
六、首次生成统计数据(手动初始化)
bash
# yum 安装路径
/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=yourdomain -update# 源码安装路径
# /var/www/cgi-bin/awstats/awstats.pl -config=yourdomain -update
- 执行后,会在
/var/lib/awstats
生成统计数据文件。
七、访问 AWStats 中文界面
浏览器输入以下地址(替换 yourdomain
和 IP
):
plaintext
http://10.10.10.128/awstats/awstats.pl?config=yourdomain
- 效果:界面应为中文,显示访问量、独立访客、页面浏览等统计数据。
八、常见问题排查
1. 界面还是英文?
- 检查配置文件:确保
Lang="cn"
无拼写错误。 - 强制刷新浏览器:
Ctrl + F5
清除缓存。 - 检查语言包:
bash
# yum 安装 ls /usr/share/awstats/lang/awstats.cn.conf# 源码安装 ls /usr/local/awstats/lang/awstats.cn.conf
- 若文件不存在,重新安装 AWStats(
yum reinstall awstats
或 重新解压源码包)。
- 若文件不存在,重新安装 AWStats(
2. 访问报 403 Forbidden?
- 检查
awstats.conf
中Allow from
是否包含你的访问 IP。 - 临时开放所有 IP 测试(生产环境慎用):
apache
Allow from all
3. 数据不更新?
- 检查 Cron 任务:
cat /etc/cron.d/awstats
确认任务存在。
总结
- yum 安装:适合快速部署,依赖自动处理,中文配置简单。
- 源码安装:适合自定义版本,需手动处理软链接和路径。
- 核心步骤:配置文件加
Lang="cn"
+ Apache 权限开放 + 定时任务。
按流程操作,即可完成 AWStats 部署 + 中文界面 全流程,实现网站访问数据统计!
相关文章:

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...