Cómo instalar Matomo Web Analytics en Ubuntu 20.04

Matomo, antes conocido como Piwik, es una aplicación de análisis web gratuita y de código abierto que te ayuda a hacer un seguimiento de los visitantes de tu sitio web. Es una alternativa al software de Google Analytics que te da el control total de los datos y la analítica de tu propio sitio web sin necesidad de utilizar soluciones de terceros. Está diseñado para pequeñas y medianas empresas que pueden utilizarlo para hacer un seguimiento de los indicadores clave de rendimiento, como las visitas, las descargas, las tasas de conversión de objetivos, las palabras clave y muchos más.

En este tutorial, te mostraremos cómo instalar el software de analítica web Matomo en Ubuntu 20.04 con Nginx y Let’s Encrypt SSL.

Requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada el servidor.

Cómo empezar

En primer lugar, se recomienda actualizar los paquetes de tu sistema con la última versión. Puedes actualizarlos ejecutando el siguiente comando:

apt-get update -y

Una vez actualizados todos los paquetes, instala otras dependencias necesarias ejecutando el siguiente comando:

apt-get install curl wget vim git unzip socat gnupg2 -y

Después de instalar todos los paquetes necesarios, puedes pasar al siguiente paso.

Instalar el servidor LEMP

Matomo se ejecuta en un servidor web, escrito en PHP y utiliza MySQL para la base de datos. Así que la pila LEMP debe estar instalada en tu servidor. Puedes instalarlo con el siguiente comando:

apt-get install nginx mariadb-server php7.4 php7.4-cli php7.4-fpm php7.4-common php7.4-curl php7.4-gd php7.4-xml php7.4-mbstring php7.4-mysql -y

Una vez instalada la pila LEMP, puedes pasar al siguiente paso.

Crear la base de datos de Matomo

Matomo requiere una base de datos para almacenar los datos analíticos. Así que tendrás que crear una base de datos y un usuario para Matomo.

En primer lugar, inicia sesión en MariaDB con el siguiente comando:

mysql

Después de iniciar la sesión, crea una base de datos y un usuario para Matomo con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE matomodb;
MariaDB [(none)]> GRANT ALL ON matomodb.* TO 'matomo' IDENTIFIED BY 'password';

A continuación, vacía los privilegios y sal de MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Una vez creada la base de datos, puedes pasar al siguiente paso.

Descarga Matomo

En primer lugar, descarga la última versión de Matomo en el directorio raíz de la web Nginx desde su página oficial con el siguiente comando:

cd /var/www/html/
wget https://builds.matomo.org/matomo.zip

Una vez descargado, descomprime el archivo descargado con el siguiente comando:

unzip matomo.zip

A continuación, cambia la propiedad de Matomo a www-data:

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

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Nginx para Matomo

A continuación, tendrás que crear un nuevo archivo de configuración del host virtual Nginx para servir a Matomo.

nano /etc/nginx/sites-available/matomo.conf

Añade las siguientes líneas:

server {

  listen 80;
  server_name matomo.linuxbuz.com;
  root /var/www/html/matomo/;
  index index.php;

  location ~ ^/(index|matomo|piwik|js/index).php {
    include snippets/fastcgi-php.conf;
    fastcgi_param HTTP_PROXY ""; 
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; 
  }
  
  location = /plugins/HeatmapSessionRecording/configs.php {
    include snippets/fastcgi-php.conf;
    fastcgi_param HTTP_PROXY "";
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  }

  location ~* ^.+\.php$ {
    deny all;
    return 403;
  }

  location / {
    try_files $uri $uri/ =404;
  }
  
  location ~ /(config|tmp|core|lang) {
    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;
  }

  location ~ /(libs|vendor|plugins|misc/user) {
    deny all;
    return 403;
  }

}

Guarda y cierra el archivo y luego activa el host virtual con el siguiente comando:

ln -s /etc/nginx/sites-available/matomo.conf /etc/nginx/sites-enabled/

A continuación, comprueba si el Nginx tiene algún error de configuración con el siguiente comando:

nginx -t

Deberías ver la siguiente salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Por último, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

En este punto, Nginx está configurado para servir a Matomo. Ahora puedes pasar al siguiente paso.

Asegura Matomo con Let’s Encrypt SSL

Siempre es una buena idea asegurar tu sitio web con Let’s Encrypt SSL. Primero, instala el cliente Let’s Encrypt de Certbot en tu servidor con el siguiente comando:

apt-get install python3-certbot-nginx -y

Una vez instalado, asegura tu sitio web con Let’s Encrypt SSL ejecutando el siguiente comando:

certbot --nginx -d matomo.linuxbuz.com

Se te pedirá que proporciones una dirección de correo electrónico válida y que aceptes las condiciones del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for matomo.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/matomo.conf

A continuación, elige si quieres redirigir el tráfico HTTP a HTTPS como se muestra a continuación:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Escribe 2 y pulsa Intro para finalizar la instalación. Deberías ver el siguiente resultado:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/matomo.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://matomo.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=matomo.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/matomo.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/matomo.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Ahora, tu sitio web de Matomo está protegido con Let’s Encrypt SSL.

Accede a Matomo Analytics

Ahora, abre tu navegador web y escribe la URL https://matomo.linuxbuz.com. Serás redirigido a la pantalla de bienvenida de Matomo:

Instalador de Matomo Analytics

Haz clic en el botón SIGUIENTE. Deberías ver la pantalla de comprobación de requisitos previos de Matomo:

Comprobación del sistema

Haz clic en el botón SIGUIENTE. Deberías ver la pantalla de configuración de la base de datos de Matomo:

Configuración de la base de datos

Proporciona los detalles de tu base de datos y haz clic en el botón SIGUIENTE. Deberías ver la siguiente pantalla:

Crear tablas de la base de datos

Haz clic en el botón SIGUIENTE. Deberías ver la pantalla de configuración del usuario administrador:

Añadir un superusuario

Proporciona tu nombre de usuario de administrador, contraseña, correo electrónico y haz clic en el botón SIGUIENTE. Deberías ver la pantalla de configuración del sitio web:

Configurar el sitio web

Proporciona los detalles de tu sitio web y haz clic en el botón SIGUIENTE. Deberías ver la siguiente pantalla:

Código de seguimiento del sitio web

Haz clic en el botón SIGUIENTE. Una vez completada la instalación, deberías ver la siguiente pantalla:

Matomo instalado con éxito

Haz clic en el botón CONTINUAR A MATOMO. Serás redirigido a la pantalla de inicio de sesión de Matomo:

Inicio de sesión en Matomo

Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón INICIAR SESIÓN. Deberías ver el panel de control de Matomo en la siguiente pantalla:

Tablero de mandos de Matomo

Conclusión

Enhorabuena! has instalado y configurado correctamente Matomo analytics con Nginx y Let’s Encrypt en Ubuntu 20.04. Ahora puedes integrar tu sitio web con Matomo y empezar a hacer el seguimiento de tu sitio web. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...