admin 发表于 2022-8-12 19:36:05

记一次umami隐私统计的安装和配置过程(完整)

UMAMI使用nodejs编写,是一个用于替代Google Analytics等第三方统计平台,更专注于用户隐私保护的自建统计项目。

UMAMI 适用于安装了nodejs的服务器环境,也可以运行在docker 上,我们在此介绍服务器本地部署操作流程。

所需要的本地运行环境为 nodejs+npm+mysql+pm2+nginx

一、nodejs 、npm 安装
1,首先添加epel yum源:
yum install epel-release -y
2,安装node npm:
yum install node npm -y
二、mysql安装:
1,下载mysql安装包:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
3,解压并将改名为mysql 移动到/usr/local/目录下
tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql/
4,创建data目录:
mkdir /usr/local/mysql/data
5,创建mysql用户组:
groupadd mysql
6,创建mysql 用户:
useradd mysql -g mysql
7,设置mysql目录权限
chown -R mysql.mysql /usr/local/mysql
8,安装numactl、libaio:
yum -y install numactl libaio
9,配置mysql:
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
10,修改/etc/my.cnf文件内容为:

datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为
lower_case_table_names=1
11,给my.cnf权限 :
chmod -R 775 /etc/my.cnf
12,将mysql加入服务
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
//重启mysql服务
service mysql restart
13,开机自启
chkconfig mysql on
14,启动
service mysql start
15,登陆mysql 修改初始密码(初始密码在第9步配置时有显示,注意查看):
mysql -uroot -p初始密码
set password for root@localhost = password('新密码');
flush privileges;

三、安装umami 和 配置
1,拉取并安装umami:
git clone https://github.com/mikecao/umami.git
cd umami
npm install
如果没有git ,通过yum安装:
yum -y install git
2,导入数据库:
mysql -u username -p databasename < sql/schema.mysql.sql
3,在umami目录下新建.env文件
vi .env
DATABASE_URL=mysql://username:mypassword@localhost:3306/databasename
HASH_SALT=随机生成
4,在umami目录下执行如下命令, 即可生成编译后的工程文件
npm run build
5,启动:
npm start
按照官方readme说的直接npm start是可以的,默认会运行在3000,但是我们如果关闭了终端会话,也会停止运行,在此通过pm2 来实现后台和自动运行:

6,先安装pm2:
npm install pm2 -g
7,在umami目录下执行:
pm2 start npm --name umami -- start
pm2 startup
pm2 save8,pm2 相关命令说明:
npm install pm2 -g   # 命令行安装 pm2
pm2 start app.js -i 4 #后台运行pm2,启动4个app.js
                              # 也可以把'max' 参数传递给 start
                              # 正确的进程数目依赖于Cpu的核心数目
pm2 start app.js --name my-api # 命名进程
pm2 list               # 显示所有进程状态
pm2 monit            # 监视所有进程
pm2 logs               #显示所有进程日志
pm2 stop all         # 停止所有进程
pm2 restart all      # 重启所有进程
pm2 reload all         # 0秒停机重载进程 (用于 NETWORKED 进程)
pm2 stop 0             # 停止指定的进程
pm2 restart 0          # 重启指定的进程
pm2 startup            # 产生 init 脚本 保持进程活着
pm2 web                # 运行健壮的 computer API endpoint (http://localhost:9615)
pm2 delete 0         # 杀死指定的进程
pm2 delete all         # 杀死全部进程


到此配置完成,但访问时,需要加上3000端口,可以安装nginx进行反代实现域名直接访问。

四、安装nginx实现反代
1,添加源:
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2,进行yum安装nginx:
yum -y install nginx
3、启动Nginx并设置开机自动运行
sudo systemctl start nginx
sudo systemctl enable nginx
4,编辑/etc/nginx/nginx.conf(也可以修改/etc/nginx/conf.d/default.conf)配置反向代理配置代码:
server{
    server_name 你的域名;
    location / {
      proxy_pass http://127.0.0.1:3000;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}


到此配置完成,可以通过绑定的域名进行访问了。





页: [1]
查看完整版本: 记一次umami隐私统计的安装和配置过程(完整)