如何在Fedora 28上安装AWStats

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..conf

现在编辑该文件:

sudoedit /etc/awstats/awstats..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=

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

输出内容如下:

Create/Update database for config "/etc/awstats/awstats..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的网站主页。它看起来有点像这样:
图片.png

确保页面加载正确,您可以在右上角看到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
你的用户名可以是任何东西,但它不应该包含空格,应该是唯一的,不是像管理员或站长这样容易猜到的东西。当您运行命令时,系统会提示您输入密码。输入安全密码,然后确认。

重载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=

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

prerotate

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

endscript

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

你可能感兴趣的:(fedora,awstats)