Matomo logo
Image: Matomo

If you admin websites, you know how important data analysis can be. You might need to keep abreast of things like visitors, search engines and keywords used, languages spoken, pages liked, downloaded files and more. That data can be an important part of growing and optimizing your sites and the content you provide.

SEE: Hiring Kit: JavaScript Developer (TechRepublic Premium)

One tool for this is the open-source Matomo (formerly Piwik). Not only can Matomo keep you informed, but it also works with Google AdWords, Facebook Ads, Yahoo, and features cost-per-click analysis, search marketing and a tracking and reporting API.

If this sounds like something you and/or your company could benefit from, let’s get it installed.

What you’ll need

I’m going to demonstrate on Ubuntu Server 20.04, so you’ll need a running instance of that platform, along with a user account that has sudo privileges.

Ready? Let’s do this.

How to install the dependencies

The first thing we’ll do is install the necessary dependencies. Log into your Ubuntu instance and install those packages with the command:

sudo apt-get install apache2 mariadb-server php libapache2-mod-php php-cli php-fpm php-fpm php-json php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath curl unzip -y

Once that installation completes, you’re ready to take care of the database.

How to create the database

Before we create the database, let’s start and enable MariaDB with:

sudo systemctl enable --now mariadb

Next, we need to secure MariaDB. Issue the command:

sudo secure_mysql_installation

Create a new password for the admin user and then answer ‘y’ for the remaining questions.

Log in to the MariaDB console with:

sudo mysql

Create the database with:

CREATE DATABASE matomodb;

Create a new user with:

MariaDB [(none)]> CREATE USER 'matomo'@'localhost' IDENTIFIED BY 'PASSWORD';

Where PASSWORD is a strong/unique password.

Grant the necessary privileges to the user with:

GRANT ALL ON matomodb.* TO 'matomo'@'localhost' WITH GRANT OPTION;

Flush all privileges and exit the database console with:

FLUSH PRIVILEGES;

exit

How to download and unpack Matomo

Download the latest version of Matomo with the command:

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

Unpack the file with:

unzip matomo-latest.zip

Move the newly created directory into the Apache document root with:

sudo mv matomo /var/www/html/

Change the permissions and ownership with:

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

sudo chmod -R 755 /var/www/html/matomo

How to configure Apache

We now turn to the configuration of Apache. Create a new .conf file with:

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

In that file, paste the following (modifying as needed):

<VirtualHost *:80>

ServerAdmin admin@example.com

ServerName matomo.example.com

DocumentRoot /var/www/html/matomo/

<Directory /var/www/html/matomo>

DirectoryIndex index.php

Options FollowSymLinks

AllowOverride All

Require all granted

</Directory>

<Files "console">

Options None

Require all denied

</Files>

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

Options None

Require all granted

</Directory>

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

Options None

Require all denied

</Directory>

<Directory /var/www/html/matomo/vendor>

Options None

Require all denied

</Directory>

ErrorLog ${APACHE_LOG_DIR}/matomo_error.log

CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined

</VirtualHost>

Save and close the file.

Enable the site with:

sudo a2ensite matomo.conf\

Enable the rewrite module with:

sudo a2enmod rewrite

Restart Apache with:

sudo systemctl restart apache2

How to finish the installation

Open a web browser and point it to http://SERVER/matomo. You will be greeted with the Matomo installation wizard (Figure A).

Figure A

The Matomo installation wizard is simple to complete.
The Matomo installation wizard is simple to complete.

Click NEXT and the system check will complete. Scroll to the bottom and click NEXT. In the resulting window (Figure B), fill out the necessary information for the database. The login is matomo, the database name is matomodb, and the password is what you set in the MariaDB console. Click NEXT when finished.

Figure B

Setting the database parameters for Matomo.
Setting the database parameters for Matomo.

Once the tables are created, click Next and you’ll then be prompted to create a superuser to serve as the site administrator (Figure C).

Figure C

Creating a superuser for Matomo administration purposes.
Creating a superuser for Matomo administration purposes.

Click Next and, in the next window (Figure D), you’ll be prompted to set up a website to analyze.

Figure D

Setting up your first site to be analyzed by Matomo.
Setting up your first site to be analyzed by Matomo.

Click Next and you’ll then be prompted to add the necessary JavaScript tracking code to your website. You’ll need to add the script before the closing </head> tag on those web pages you want to be analyzed. The tracking code page in the wizard gives you plenty of instructions for doing this. The process will vary, depending on how your websites were built and who hosts the sites.

Before you click NEXT, make sure to click EMAIL THESE INSTRUCTIONS (Figure E) so you have a reference copy for when you actually start adding the tracking code to pages.

Figure E

The tracking code instructions are pretty clear but will vary based on how your sites were built.
The tracking code instructions are pretty clear but will vary based on how your sites were built.

Click Next and then click CONTINUE TO MATOMO to finally reach the actual site, where you’ll be prompted to log in with the admin account you created. You’ll then be presented with even more instructions on how to get the tracking code added to your sites.

And that’s all there is to getting the Matomo web analysis platform installed. After this platform is up and running, you’ll probably spend more time adding tracking code to sites than you did installing the platform. But if data is important to you and your business, the effort will pay off.

Subscribe to TechRepublic’s How To Make Tech Work on YouTube for all the latest tech advice for business pros from Jack Wallen.

Subscribe to the Developer Insider Newsletter

From the hottest programming languages to commentary on the Linux OS, get the developer and open source news and tips you need to know. Delivered Tuesdays and Thursdays

Subscribe to the Developer Insider Newsletter

From the hottest programming languages to commentary on the Linux OS, get the developer and open source news and tips you need to know. Delivered Tuesdays and Thursdays