云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 18.04系统上安装Matomo的详细步骤

在Ubuntu 18.04系统上安装Matomo的详细步骤

2019-01-21 21:48:18作者:李哲稿源:云网牛站

本文介绍使用Apache/Nginx在Ubuntu 18.04系统上安装Matomo的详细步骤,全称为Matomo Web Analytics(以前称为Piwik)。Matomo是用PHP编写的,使用MySQL/MariaDB数据库,具有512MB RAM的服务器足以运行Matomo,假设你已经在Ubuntu 18.04上设置了LAMP或LEMP,如果还没有请参考在Ubuntu 18.04系统中安装LAMP服务器全过程如何在Ubuntu 18.04上安装Linux,Nginx,MySQL,PHP(LEMP堆栈)

 

第1步:在Ubuntu 18.04上下载Matomo

通过SSH登录服务器,你始终可以使用以下命令在服务器上下载最新版本的Matomo,可上matomo.org网站下载,在写本文时,最新版本是Matomo 3.7,它附带了一个新功能-标签管理器,这是Matomo在过去几年中最重要的里程碑之一:

wget https://builds.matomo.org/matomo-latest.zip

下载后,解压缩:

sudo apt install unzip

sudo unzip matomo-latest.zip -d /var/www/

-d选项指定目标目录,Matomo网络文件将被提取到/var/www/matomo/,然后我们需要将此目录的所有者更改为www-data,以便Web服务器(Nginx)可以写入此目录:

sudo chown www-data:www-data /var/www/matomo/ -R

 

第2步:在MariaDB中创建数据库和用户

安装参考在Ubuntu 18.04系统上安装MariaDB 10.4的步骤

使用以下命令登录MariaDB数据库,由于MariaDB现在使用unix_socket插件来验证用户登录,因此无需输入MariaDB root密码,我们只需要在mysql命令前加上sudo:

sudo mysql

或者,你也可以使用此命令登录。

sudo mariadb

然后为Matomo创建一个数据库,本教程将数据库命名为matomo,你可以使用你喜欢的任何名字。

create database matomo;

创建数据库用户,同样,可以为此用户使用你的首选名称,请替换matomouser及your-password:

create user matomouser@localhost identified by 'your-password';

授予此用户matomo数据库的所有权限:

grant all privileges on matomo.* to matomouser@localhost identified by 'your-password';

刷新权限并退出:

flush privileges;

exit;

 

第3步:创建Apache或Nginx配置文件

1、Apache

如果你更喜欢使用Apache Web服务器,请在/etc/apache2/sites-available/目录中创建虚拟主机配置文件:

sudo nano /etc/apache2/sites-available/matomo.conf

将以下文本放入文件中,将analytics.example.com替换为实际地址,不要忘记为域名设置A记录:

<VirtualHost *:80>

ServerAdmin webmaster@localhost

ServerName analytics.example.com

DocumentRoot /var/www/matomo/

<Directory /var/www/matomo>

DirectoryIndex index.php

Options FollowSymLinks

AllowOverride All

Require all granted

</Directory>

<Files "console">

Options None

Require all denied

</Files>

<Directory /var/www/matomo/misc/user>

Options None

Require all granted

</Directory>

<Directory /var/www/matomo/misc>

Options None

Require all denied

</Directory>

<Directory /var/www/matomo/vendor>

Options None

Require all denied

</Directory>

ErrorLog ${APACHE_LOG_DIR}/matomo_error.log

CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined

</VirtualHost>

保存并关闭文件,然后启用此虚拟主机:

sudo a2ensite matomo.conf

重新加载Apache Web服务器以使更改生效:

sudo systemctl reload apache2

2、Nginx

如果你更喜欢使用Nginx Web服务器,请在/etc/nginx/conf.d/目录中创建一个matomo.conf文件:

sudo nano /etc/nginx/conf.d/matomo.conf

将以下文本放入文件中,将analytics.example.com替换为实际地址,不要忘记为域名设置A记录:

server {

listen [::]:80; # remove this if you don't want Matomo to be reachable from IPv6

listen 80;

server_name analytics.example.com;

access_log /var/log/nginx/matomo.access.log;

error_log /var/log/nginx/matomo.error.log;

root /var/www/matomo/; 

index index.php;

## only allow accessing the following php files

location ~ ^/(index|matomo|piwik|js/index).php {

include snippets/fastcgi-php.conf;

fastcgi_param HTTP_PROXY ""; # prohibit httpoxy: https://httpoxy.org/

fastcgi_pass unix:/run/php/php7.2-fpm.sock; 

}

## needed for HeatmapSessionRecording plugin

location = /plugins/HeatmapSessionRecording/configs.php { 

include snippets/fastcgi-php.conf;

fastcgi_param HTTP_PROXY "";

fastcgi_pass unix:/run/php/php7.2-fpm.sock; 

}

## deny access to all other .php files

location ~* ^.+.php$ {

deny all;

return 403;

}

## serve all other files normally 

location / {

try_files $uri $uri/ =404;

}

## disable all access to the following directories 

location ~ /(config|tmp|core|lang) {

deny all;

return 403; # replace with 404 to not show these directories exist

}

location ~ /.ht {

deny  all;

return 403;

}

location ~ .(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ {

allow all;

## Cache images,CSS,JS and webfonts for an hour

## Increasing the duration may improve the load-time, but may cause old files to show after an Matomo upgrade

expires 1h;

add_header Pragma public;

add_header Cache-Control "public";

}

location ~ /(libs|vendor|plugins|misc/user) {

deny all;

return 403;

}

## properly display textfiles in root directory

location ~/(.*.md|LEGALNOTICE|LICENSE) {

default_type text/plain;

}

}

保存并关闭文件,测试Nginx配置,然后重新加载Nginx以使更改生效:

sudo nginx -t

sudo systemctl reload nginx

 

第4步:安装并启用PHP模块

运行以下命令以安装Matomo所需或推荐的PHP模块:

sudo apt install php-imagick php7.2-common php7.2-gd php7.2-json php7.2-curl  php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-intl

如果使用的是Apache Web服务器,则需要重新加载它以使其与这些PHP模块一起运行:

sudo systemctl reload apache2

Nginx用户无需重新加载。

现在,应该可以访问http://analytics.example.com上的Matomo基于Web的安装向导,但在输入任何信息之前,请启用HTTPS。

 

第5步:启用HTTPS

要在访问Matomo Web界面时使用加密处理,我们可以通过安装从Let's Encrypt发出的免费TLS证书来启用HTTPS,运行以下命令在Ubuntu 18.04上安装Let的加密客户端(certbot):

sudo apt install software-properties-common

sudo add-apt-repository ppa:certbot/certbot

sudo apt update

sudo apt install certbot

如果使用Nginx,还需要安装Certbot Nginx插件:

sudo apt install python3-certbot-nginx

然后运行以下命令以获取并安装TLS证书(请修改为自己的数据):

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d analytics.example.com

如果使用Apache,则还需要安装Certbot Apache插件:

sudo apt install python3-certbot-apache

然后运行此命令以获取并安装TLS证书(请修改为自己的数据):

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d analytics.example.com

说明:

--nginx:使用nginx插件。

--apache:使用Apache插件。

--agree-tos:同意服务条款。

--redirect:通过301重定向强制HTTPS。

--hsts:将Strict-Transport-Security标头添加到每个HTTP响应中,强制浏览器始终对域使用TLS,防御SSL/TLS剥离。

--staple-ocsp:启用OCSP Stapling,将有效的OCSP响应装订到服务器在TLS期间提供的证书。

现在应该获取并自动安装证书:

在Ubuntu 18.04系统上安装Matomo的详细步骤

 

第6步:在Web浏览器中完成安装Matomo

转到https://analytics.example.com(要自己的地址)以启动基于Web的安装向导,然后单击下一步按钮:

在Ubuntu 18.04系统上安装Matomo的详细步骤

它将检查你的系统是否满足PHP扩展等要求,如果满足所有要求,请单击下一步:

在Ubuntu 18.04系统上安装Matomo的详细步骤

在下一步中,输入之前创建的MariaDB用户名,密码和数据库名称,可以在其他字段中使用默认值:

在Ubuntu 18.04系统上安装Matomo的详细步骤

单击下一步后,安装向导将自动在数据库中创建一些表,单击下一步继续:

在Ubuntu 18.04系统上安装Matomo的详细步骤

在下一个屏幕中,为Matomo Web界面创建管理员用户:

在Ubuntu 18.04系统上安装Matomo的详细步骤

创建管理员用户后,需要添加网站以收集分析数据:

在Ubuntu 18.04系统上安装Matomo的详细步骤

然后,需要将JavaScript跟踪代码添加到你的网站:

在Ubuntu 18.04系统上安装Matomo的详细步骤

到了这里请单击下一步按钮,Matomo安装完成,你现在就可以登录Matomo仪表板并查看访客数据了:

在Ubuntu 18.04系统上安装Matomo的详细步骤

 

附:为中高流量网站设置Cron Jobs

如果你的网站每天有数千页的浏览量,则需要设置一个cron作业来自动存档Matomo报告,使用以下命令创建Cron作业文件:

sudo nano /etc/cron.d/matomo-archive

然后将以下行添加到该文件中(注意修改成你的数据):

MAILTO="your@example.com"

5 * * * * www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://analytics.example.com > /dev/null

标准输出将发送到/dev/null,标准错误将发送到你的电子邮件地址,保存并关闭文件,这个Cron工作将在5分钟后每小时运行一次。

 

相关主题

Linux云服务器CentOS 7.4 64位PHP环境配置[LAMP]

精选文章
热门文章