Matomo, anteriormente conocido como Piwik, es una aplicación de análisis web gratuita y de código abierto que lo ayuda a realizar un seguimiento de los visitantes en línea de su sitio web. Es una alternativa al software Google Analytics que le brinda control total de los análisis y datos de su propio sitio web sin utilizar soluciones de terceros. Está diseñado para pequeñas y medianas empresas y se puede utilizar para realizar un seguimiento de los indicadores clave de rendimiento, como visitas, descargas, tasas de conversión de objetivos, palabras clave y muchos más.
En este tutorial, le mostraremos cómo instalar el software de análisis web Matomo en Ubuntu 20.04 con Nginx y Let's Encrypt SSL.
Requisitos
- Un servidor con Ubuntu 20.04.
- Un nombre de dominio válido apuntado con la IP de su servidor.
- Se configura una contraseña de root en el servidor.
Cómo empezar
Primero, se recomienda actualizar los paquetes de su sistema con la última versión. Puede actualizarlos ejecutando el siguiente comando:
apt-get update -y
Una vez que todos los paquetes estén actualizados, instale otras dependencias requeridas ejecutando el siguiente comando:
apt-get install curl wget vim git unzip socat gnupg2 -y
Después de instalar todos los paquetes necesarios, puede continuar con el siguiente paso.
Instalar servidor LEMP
Matomo se ejecuta en un servidor web, está escrito en PHP y usa MySQL para la base de datos. Entonces, la pila LEMP debe estar instalada en su servidor. Puede 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 que se instala la pila LEMP, puede continuar con el siguiente paso.
Crear base de datos Matomo
Matomo requiere una base de datos para almacenar los datos analíticos. Por lo tanto, deberá crear una base de datos y un usuario para Matomo.
Primero, inicie sesión en MariaDB con el siguiente comando:
mysql
Después de iniciar sesión, cree 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, elimine los privilegios y salga de MariaDB con el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Una vez que haya creado su base de datos, puede continuar con el siguiente paso.
Descargar Matomo
Primero, descargue la última versión de Matomo al directorio raíz web de Nginx desde su sitio web oficial con el siguiente comando:
cd /var/www/html/
wget https://builds.matomo.org/matomo.zip
Una vez descargado, descomprima el archivo descargado con el siguiente comando:
unzip matomo.zip
A continuación, cambie la propiedad del matomo a www-data:
chown -R www-data:www-data /var/www/html/matomo
Una vez que haya terminado, puede continuar con el siguiente paso.
Configurar Nginx para Matomo
A continuación, deberá crear un nuevo archivo de configuración de host virtual Nginx para servir a Matomo.
nano /etc/nginx/sites-available/matomo.conf
Agregue 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; } }
Guarde y cierre el archivo y luego active el host virtual con el siguiente comando:
ln -s /etc/nginx/sites-available/matomo.conf /etc/nginx/sites-enabled/
A continuación, compruebe si hay algún error de configuración en Nginx con el siguiente comando:
nginx -t
Debería ver el siguiente resultado:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Finalmente, reinicie el servicio Nginx para aplicar los cambios:
systemctl restart nginx
En este punto, Nginx está configurado para servir a Matomo. Ahora puede continuar con el siguiente paso.
Asegure Matomo con Let's Encrypt SSL
Siempre es una buena idea proteger su sitio web con Let's Encrypt SSL. Primero, instale el cliente Certbot Let's Encrypt en su servidor con el siguiente comando:
apt-get install python3-certbot-nginx -y
Una vez instalado, asegure su sitio web con Let's Encrypt SSL ejecutando el siguiente comando:
certbot --nginx -d matomo.linuxbuz.com
Se le pedirá que proporcione una dirección de correo electrónico válida y acepte el término de 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, elija si desea o no 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
Escriba 2 y presione Entrar para finalizar la instalación. Debería 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, su sitio web de Matomo está protegido con Let's Encrypt SSL.
Acceder a Matomo Analytics
Ahora, abra su navegador web y escriba la URL https://matomo.linuxbuz.com. Será redirigido a la pantalla de bienvenida de Matomo:
Haga clic en SIGUIENTE botón. Debería ver la pantalla de verificación de requisitos previos de Matomo:
Haga clic en SIGUIENTE botón. Debería ver la pantalla de configuración de la base de datos de matomo:
Proporcione los detalles de su base de datos y haga clic en SIGUIENTE botón. Debería ver la siguiente pantalla:
Haga clic en SIGUIENTE botón. Debería ver la pantalla de configuración del usuario administrador:
Proporcione su nombre de usuario, contraseña y correo electrónico de administrador y haga clic en SIGUIENTE botón. Debería ver la pantalla de configuración del sitio web:
Proporcione los detalles de su sitio web y haga clic en SIGUIENTE botón. Debería ver la siguiente pantalla:
Haga clic en SIGUIENTE botón. Una vez que se haya completado la instalación, debería ver la siguiente pantalla:
Haga clic en CONTINUAR A MATOMO . Será redirigido a la pantalla de inicio de sesión de Matomo:
Proporcione su nombre de usuario y contraseña de administrador y haga clic en INICIAR SESIÓN botón. Debería ver el tablero de Matomo en la siguiente pantalla:
Conclusión
¡Felicidades! ha instalado y configurado con éxito el análisis de Matomo con Nginx y Let's Encrypt en Ubuntu 20.04. Ahora puede integrar su sitio web con Matomo y comenzar a rastrear su sitio web. Siéntase libre de preguntarme si tiene alguna pregunta.