如何在Fedora 28上安装AWStats

哈希极昼
• 阅读 1371

AWStats是分析web流量的有用工具。它的HTML界面可以通过浏览器访问,让你很容易了解谁在浏览你的网站。本教程将介绍如何在Fedora 28上安装、配置和保护Nginx web服务器的AWStats。

如果您还没有安装Nginx,现在就安装:

sudo dnf install nginx
sudo systemctl enable --now nginx

安装AWStats和工具

首先,您需要安装一些东西。幸运的是,这非常简单,因为您需要的所有软件都在Fedora的存储库中:

sudo dnf install awstats httpd-tools php-fpm

httpd-tools包含一些我们需要的工具,比如htpasswd。它是为Apache设计的,但大多数工具也与Nginx一起工作。另一个工具PHP -fpm允许我们从Nginx运行PHP脚本。

我们需要通过systemctl启用php-fpm:

sudo systemctl enable --now php-fpm

为您的站点配置AWStats

在使用AWStats之前,我们需要配置它。复制模型配置文件,为您的网站创建一个新的配置:

sudo cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.<yoursitename>.conf

现在编辑该文件:

sudoedit /etc/awstats/awstats.<yoursitename>.conf

向下滚动到显示LogFile=“/var/log/httpd/access_log”的行。因为我们使用的是Nginx而不是Apache,所以我们需要改变这个。将其更改为LogFile="/var/log/nginx/access.log"。
接下来,向下滚动到显示DirIcons="/awstatsicons"的行。如果找不到,输入/DirIcons,然后按ENTER键跳转到它。将这一行改为DirIcons="../图标"。
最后,AWStats需要知道它分析的是哪个网站。通过这种方式,它可以报告诸如哪些用户来自外部站点之类的信息。这里的两个相关配置选项是SiteDomain和HostAliases。SiteDomain就是站点的域名;HostAliases将会是任何其他可能被使用的域名的列表(例如,如果你的站点是www.example.com,你可能会把example.com放在这里,如果它是同一个站点)。

所有配置选项都记录在配置文件中。如果您想确切地知道某个选项的作用,或者想查看AWStats提供的所有选项,只需阅读该文件中的注释即可。

设置权限

强烈建议不要作为根用户运行AWStats。我们将在nginx安装期间已经设置好的nginx用户下运行AWStats。

为此,我们需要让nginx成为AWStats存储其数据库的目录(/var/lib/ AWStats)的所有者:

sudo chown -R nginx /var/lib/awstats

第一次运行AWStats

在后面的步骤中,我们将设置AWStats,以便在服务器日志旋转时运行。然而,这是第一次,最好手动运行它。执行以下命令:

sudo -u nginx /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=<yoursitename>

注意:-u nginx部分告诉sudo以nginx用户而不是根用户的身份运行命令。

输出内容如下:

Create/Update database for config "/etc/awstats/awstats.<yoursitename>.conf" by AWStats version 7.7 (build 20180105)
From data in log file "/var/log/nginx/access.log"...
Phase 1: First bypass old records, searching new record...
Direct access after last parsed record (after line 0)
Jumped lines in file: 0
Found 0 already parsed records.
Parsed lines in file: 0
Found 0 dropped records,
Found 0 comments,
Found 0 blank records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records.

配置Nginx以在线查看AWStats

接下来,我们将配置Nginx,以便从网站本身查看网站统计信息,而不是通过命令行界面。编辑您的主要Nginx配置文件:

sudoedit /etc/nginx/nginx.conf

在这里,我们将添加一个文件夹来包含网站的AWStats部分。在本教程中,我们将它称为webstats,但您可以随意调用它。

找到配置文件中显示server的部分。行之后包括/etc/nginx/default.d/*.conf;。添加一个新的部分:

location /webstats/ {

alias /usr/share/awstats/wwwroot/;

location ~ /cgi-bin/(.+\.pl) {
    include fastcgi.conf;
    fastcgi_pass php-fpm;
    fastcgi_split_path_info ^/webstats/(.+\.pl)(.*)$;
    fastcgi_param SCRIPT_FILENAME /usr/share/awstats/tools/nginx/awstats-fcgi.php;
    fastcgi_param X_SCRIPT_FILENAME /usr/share/awstats/wwwroot/$fastcgi_script_name;
    fastcgi_param X_SCRIPT_NAME $fastcgi_script_name;
}

}

本节告诉Nginx,当我们在浏览器中访问webstats目录时,它应该服务于AWStats的web根目录,如果我们在cgi-bin目录中请求一个脚本,它应该运行它。

在编辑配置文件后,我们需要重新启动Nginx:

sudo systemctl restart nginx

现在打开浏览器,进入<您的网站>/webstats/cgi-bin/awstats.pl?config=。这是AWStats的网站主页。它看起来有点像这样:
如何在Fedora 28上安装AWStats

确保页面加载正确,您可以在右上角看到AWStats徽标。如果页面没有加载或者徽标丢失,您可能在前面的步骤中有错误配置——返回并确保所有路径都是正确的。

确保AWStats

如果不能保护您的统计页面,可能会导致不好的事情,比如垃圾邮件。另外,您不希望您的详细分析数据暴露于整个Internet。
我们将使用Nginx在统计页面输入密码。打开/etc/nginx/nginx.同样,回到您添加的部分,并在location /webstats/{下面添加以下行:

auth_basic "Username and password required to access AWStats";
auth_basic_user_file /etc/nginx/.htpasswd;

现在我们需要创建。htpasswd文件。退出配置文件并运行以下命令:
sudo htpasswd -c /etc/nginx/.htpasswd <username>
你的用户名可以是任何东西,但它不应该包含空格,应该是唯一的,不是像管理员或站长这样容易猜到的东西。当您运行命令时,系统会提示您输入密码。输入安全密码,然后确认。

重载Nginx:

sudo systemctl restart nginx

尝试再次访问AWStats。这一次,你将被要求输入你的用户名和密码。输入它们,您将像以前一样被发送到AWStats主页。

每天运行AWStats,当日志被旋转时

最后,我们需要更新统计数据。我们会用cron。它是一个任务调度器实用程序,并且在Fedora(和大多数其他Linux发行版)上预装了它。我们会让它每天午夜运行AWStats。编辑/etc/crontab,并在底部添加以下行:

0 0 * nginx /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=<yoursitename>

为了避免丢失数据,我们还希望在日志旋转时运行AWStats。为此,编辑/etc/logrotate.d/nginx。在后旋转部分上方,添加以下内容:

prerotate

/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=<yoursitename>

endscript

AWStats已经全部设置好,可以开始运行了。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
3年前
Nginx配置https
一、开启nginx的ssl模块1.未安装过nginx,编译安装配置参数如下:./configure\prefix/usr/local/nginx\withpcre\withhttp\_ssl\_modulessl模块\withhttp\_stub\_status\_module\wit
Wesley13 Wesley13
3年前
ubuntu 18.04 安装 Redis
Redis安装Redis是一款内存键值存储,以其灵活性,性能和广泛的语言支持而闻名。本教程将演示如何在Ubuntu18.04服务器上安装和配置Redis。主要内容包括:1.安装Redis2.Redis配置3.Redis控制一、安装Redis使用apt从官方Ubuntu
Stella981 Stella981
3年前
Scapy 从入门到放弃
0x00前言最近闲的没事,抽空了解下地表最强的嗅探和收发包的工具:scapy。scapy是一个python模块,使用简单,并且能灵活地构造各种数据包,是进行网络安全审计的好帮手。0x01安装因为2020年python官方便不再支持python2,所以使用python3安装。!(https://oscimg.oschina.net/os
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
Git 安装 on centos7
本文演示如何在CentOS7上安装和使用git。1准备工作1.1浏览器访问安装包下载地址:https://www.kernel.org/pub/software/scm/git/找到下载列表中需要安装的版本,以2.17.0版本为例,地址为:https://www.kernel.org
Stella981 Stella981
3年前
Django + Uwsgi + Nginx 实现生产环境部署
本节内容uwsgi介绍uwsgi安装使用nginx安装配置djangowithnginx如何在生产上部署Django?Django的部署可以有很多方式,采用nginxuwsgi的方式是其中比较常见的一种方式。uwsgi介绍uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。N
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了