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:
Haz clic en el botón SIGUIENTE. Deberías ver la pantalla de comprobación de requisitos previos de Matomo:
Haz clic en el botón SIGUIENTE. Deberías ver la pantalla de configuración de la base de datos de Matomo:
Proporciona los detalles de tu base de datos y haz clic en el botón SIGUIENTE. Deberías ver la siguiente pantalla:
Haz clic en el botón SIGUIENTE. Deberías ver la pantalla de configuración del usuario administrador:
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:
Proporciona los detalles de tu sitio web y haz clic en el botón SIGUIENTE. Deberías ver la siguiente pantalla:
Haz clic en el botón SIGUIENTE. Una vez completada la instalación, deberías ver la siguiente pantalla:
Haz clic en el botón CONTINUAR A MATOMO. Serás redirigido a la pantalla de inicio de sesión de 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:
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.