1. Home
  2. Linux
  3. Ubuntu
  4. How to Install Matomo Analytics on Ubuntu 16.04

How to Install Matomo Analytics on Ubuntu 16.04

How to Install Matomo Analytics on Ubuntu 16.04
How to Install Matomo Analytics on Ubuntu 16.04

 

Matomo (formerly Piwik) is an open source analytics platform; an open alternative to Google Analytics. Matomo source is hosted on GitHub and is a fully featured PHP/MySQL software program that you can download and install on your own wweb server
In this tutorial ,we will teach you how to install Matomo on a fresh Ubuntu 16.04 Vultr server instance.

Requirements

  • PHP version 5.5.9 or greater.
  • MySQL version 5.5 or greater.
  • PHP extensions pdo and pdo_mysql, or the mysqli extension.

Check the Ubuntu version.

lsb_release -ds
# Ubuntu 16.04.4 LTS

Create a new non-root user account with sudo access and switch to it.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

NOTE: Replace ‘johndoe’ with your username.
Set up the timezone.

sudo dpkg-reconfigure tzdata

Ensure that your system is up to date.

sudo apt update && sudo apt upgrade -y

 

Install PHP and required PHP extensions

Matomo recommends using PHP 7 as it is more memory efficient and faster than previous PHP versions. Default Ubuntu repositories contain PHP 7; for this reason, the installation is simple.
Install PHP and necessary PHP extensions.

sudo apt install -y php7.0 php7.0-curl php7.0-gd php7.0-cli php7.0-mysql php-xml php7.0-mbstring

Check the version.

php --version

 

Install MySQL

Install MySQL.

sudo apt install -y mysql-server

Check the version.

mysql --version

Run the ‘mysql_secure_installation’ script to improve the security of your MySQL installation.

sudo mysql_secure_installation

Log into MySQL as the root user.

mysql -u root -p
# Enter password:

Create a new MySQL database and database user, and remember the credentials.

mysql> CREATE DATABASE db_name;
mysql> GRANT ALL ON db_name.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> quit

NOTE: Replace ‘db_name’ and ‘username’ with appropriate names for your setup. Replace ‘password’ with a strong password.

Install and configure Nginx

Install Nginx.

sudo apt install -y nginx

Check the version.

sudo nginx -v

Configure Nginx. Run ‘sudo vim /etc/nginx/sites-available/matomo.conf’ and populate the file with the following configuration.

server {
    listen 80;
    server_name stats.example.com;
    root /var/www/matomo;
    location / {
        try_files $uri /index.php$is_args$args;
    }
    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Activate the new ‘matomo.conf’ configuration by linking the file to the sites-enabled directory.

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

Test the configuration.

sudo nginx -t

Reload Nginx.

sudo systemctl reload nginx.service

 

Install Matomo

Create a document root directory.

sudo mkdir -p /var/www/matomo

Change ownership of the ‘/var/www/matomo’ directory to ‘johndoe’.

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

Install unzip.

sudo apt install -y unzip

Download the latest release Matomo.

cd /var/www/matomo
wget https://builds.piwik.org/piwik.zip
unzip piwik.zip
rm piwik.zip
mv piwik/* .
rmdir piwik

Change ownership of the ‘/var/www/matomo’ directory to ‘www-data’.

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

Open your web browser and navigate to the URL to which you have uploaded Matomo. You will see the ‘Matomo Installation Welcome Screen’. If there are any problems, Matomo will identify them and offer a solution.
Follow the instructions on the screen to finish the Matomo installation.
Here are a few hand-picked tutorials for you to read next:

Over to you: add your favorite Linux or CMS topics in the comments section.
Thanks!

Updated on January 9, 2019

Was this article helpful?

Related Articles

Leave a Comment

[apsl-login-lite login_text='Please login with a social account']