当前位置: 首页 > article >正文

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 或 重新解压源码包)。

2. 访问报 403 Forbidden?

  • 检查 awstats.conf 中 Allow from 是否包含你的访问 IP。
  • 临时开放所有 IP 测试(生产环境慎用):

    apache

    Allow from all
    

3. 数据不更新?

  • 检查 Cron 任务:cat /etc/cron.d/awstats 确认任务存在。


总结

  1. yum 安装:适合快速部署,依赖自动处理,中文配置简单。
  2. 源码安装:适合自定义版本,需手动处理软链接和路径。
  3. 核心步骤:配置文件加 Lang="cn" + Apache 权限开放 + 定时任务

按流程操作,即可完成 AWStats 部署 + 中文界面 全流程,实现网站访问数据统计! 

相关文章:

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

Docker 运行 Kafka 带 SASL 认证教程

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

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

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

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了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实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

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; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#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 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...