如何在 Ubuntu 18.04 LTS 上安装 Fathom Analytics
在此页
- 要求
- 开始
- 安装 Nginx 和 MariaDB
- 配置 MariaDB
- 安装和配置 Fathom
- 访问 Fathom Web 界面
- 创建 Fathom Systemd 服务文件
- 将 Nginx 配置为反向代理
Fathom 是一个自托管的开源 Web 分析平台,可提供简单、有用的网站统计信息,而无需跟踪或存储用户的个人信息。它是 Google Analytics 的一个很好的替代品,具有可用于中小型企业的简单 Web 界面。 Fathom 让您无需使用第三方解决方案即可完全控制您的数据。 Fathom 为您提供热门页面、热门推荐人、跳出率和在您网站上花费的平均时间。
在本教程中,我们将学习如何在 Ubuntu 18.04 服务器上安装 Fathom 分析。
要求
- 一台运行 Ubuntu 18.04 的服务器。
- 为您的服务器设置了静态 IP 地址 192.168.0.103。
- 已为您的服务器设置根密码。
入门
在开始之前,您需要使用最新版本更新您的系统。您可以通过运行以下命令来执行此操作:
apt-get update -y
apt-get upgrade -y
服务器更新后,重新启动服务器以应用更改。
安装 Nginx 和 MariaDB
首先,您需要在您的服务器上安装 Nginx 和 MariaDB 服务器。您可以通过运行以下命令来安装它们:
apt-get install nginx mariadb-server -y
安装完这两个包后,启动 MariaDB 和 Nginx 服务,并使用以下命令使它们能够在启动时启动:
systemctl start nginx
systemctl start mariadb
systemctl enable nginx
systemctl enable mariadb
配置 MariaDB
默认情况下,MariaDB 是不安全的。因此,您需要保护它。您可以通过运行 mysql_secure_installation 脚本来执行此操作:
mysql_secure_installation
该脚本将更改您当前的 root 密码,删除匿名用户,禁止 root 远程登录,如下所示:
Enter current password for root (enter for none):
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
MariaDB 安全后,使用以下命令登录 MariaDB shell:
mysql -u root -p
输入您的 root 密码,然后使用以下命令为 fathom 创建一个数据库和用户:
MariaDB [(none)]> CREATE DATABASE fathom;
MariaDB [(none)]> CREATE USER 'fathomuser'@'localhost' IDENTIFIED BY 'password';
接下来,使用以下命令授予 fathom 数据库的所有权限:
MariaDB [(none)]> GRANT ALL ON fathom.* TO 'fathomuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
接下来,使用以下命令刷新权限并退出 MariaDB shell:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]>EXIT;
安装和配置 Fathom
首先,您需要从 Git 存储库下载最新版本的 Fathom 二进制文件。您可以使用以下命令下载它:
wget https://github.com/usefathom/fathom/releases/download/latest-development/fathom-linux-amd64
下载完成后,使用以下命令将下载的二进制文件移动到 /usr/local/bin/ 目录:
mv fathom-linux-amd64 /usr/local/bin/fathom
接下来,使用以下命令提供对二进制文件的可执行权限:
chmod 755 /usr/local/bin/fathom
接下来,您需要在主目录中配置 Fathom 环境。您可以通过运行以下命令来执行此操作:
nano .env
添加以下行:
FATHOM_SERVER_ADDR=9000
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="mysql"
FATHOM_DATABASE_NAME="fathom"
FATHOM_DATABASE_USER="fathomuser"
FATHOM_DATABASE_PASSWORD="password"
FATHOM_DATABASE_HOST="localhost"
FATHOM_DATABASE_SSLMODE=""
FATHOM_SECRET="random-secret-string"
接下来,您需要为 Fathom 创建一个管理员帐户。您可以使用以下命令执行此操作:
fathom --config=.env user add
您应该看到以下输出:
INFO[0000] Fathom 1.1.0
INFO[0000] Configuration file: /root/.env
INFO[0000] Connected to mysql database: fathomuser:(localhost)/fathom?loc=Local&parseTime=true
INFO[0000] Created user
现在,使用以下命令启动 Fathom 服务器:
fathom server
您应该看到以下输出:
INFO[0000] Fathom 1.1.0
INFO[0000] Configuration file: /root/.env
INFO[0000] Connected to mysql database: fathomuser:(localhost)/fathom?loc=Local&parseTime=true
INFO[0002] Applied 11 database migrations!
INFO[0002] Server is now listening on :9000
访问 Fathom Web 界面
Fathom 现在正在启动并侦听端口 9000。打开您的 Web 浏览器并输入 URL http://192.168.0.103:9000。您将被重定向到以下页面:

现在,提供您的管理员凭据并单击“登录”按钮。您应该会看到以下页面:

现在,提供您的站点名称并单击创建站点按钮。您应该会看到以下页面:

示例统计:

创建 Fathom Systemd 服务文件
接下来,您需要为 Fathom 创建一个 systemd 服务文件来管理 Fathom 服务。您可以使用以下命令执行此操作:
nano /etc/systemd/system/fathom.service
添加以下行:
[Unit]
Description=Fathom server management service unit
Requires=network.target
After=network.target
[Service]
Type=simple
User=root
Restart=always
RestartSec=3
WorkingDirectory=/root
ExecStart=/usr/local/bin/fathom server
[Install]
WantedBy=multi-user.target
保存并关闭文件,然后使用以下命令启用 Fathom 服务:
systemctl daemon-reload
systemctl enable fathom
接下来,使用以下命令启动 Fathom 服务:
systemctl start fathom
您可以使用以下命令检查 Fathom 服务的状态:
systemctl status fathom
您应该看到以下输出:
? fathom.service - Fathom server management service unit
Loaded: loaded (/etc/systemd/system/fathom.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2019-01-30 11:44:46 UTC; 4s ago
Main PID: 19671 (fathom)
Tasks: 5 (limit: 1114)
CGroup: /system.slice/fathom.service
??19671 /usr/local/bin/fathom server
Jan 30 11:44:46 ubuntu1804 systemd[1]: Started Fathom server management service unit.
Jan 30 11:44:46 ubuntu1804 fathom[19671]: time="2019-01-30T11:44:46Z" level=info msg="Fathom 1.1.0"
Jan 30 11:44:46 ubuntu1804 fathom[19671]: time="2019-01-30T11:44:46Z" level=info msg="Configuration file: /root/.env"
Jan 30 11:44:46 ubuntu1804 fathom[19671]: time="2019-01-30T11:44:46Z" level=info msg="Connected to mysql database: fathomuser:(loc
Jan 30 11:44:46 ubuntu1804 fathom[19671]: time="2019-01-30T11:44:46Z" level=info msg="Server is now listening on :9000"
配置 Nginx 作为反向代理
默认情况下,Fathom 监听 9000 端口。因此您需要将 Nginx 配置为反向代理以在不指定端口号的情况下访问 Fathom。
你可以通过创建 Fathom 虚拟主机文件来做到这一点:
nano /etc/nginx/sites-available/fathom
添加以下行:
server {
listen 80;
listen [::]:80;
server_name 192.168.0.103;
location / {
proxy_pass http://localhost:9000/;
}
}
保存并关闭文件。然后,使用以下命令测试 Nginx 是否存在任何语法错误:
nginx -t
接下来,使用以下命令禁用 Nginx 默认虚拟主机文件并启用 Fathom 虚拟主机文件:
rm -rf /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/fathom /etc/nginx/sites-enabled/
接下来,使用以下命令重启 Nginx 服务:
systemctl restart nginx
现在,您可以使用 URL http://192.168.0.103 访问您的 Fathom Web 界面。