Table of Contents
Was this article helpful?
Try Vultr Today with

$50 Free on Us!

Want to contribute?

You could earn up to $600 by adding new articles.

How to Install Matomo Analytics on Fedora 28

Last Updated: Fri, Sep 7, 2018
Business Fedora Linux Guides Server Apps
Archived content

This article is outdated and may not work correctly for current operating systems or software.

Matomo (formerly Piwik) is an open source analytics platform, an open alternative to Google Analytics. Matomo source is hosted on GitHub. It is a fully featured PHP/MySQL software program that you download and install on your own webserver. In this guide, we will install Matomo on a fresh Fedora 28 Vultr server instance.


  • Nginx.

  • PHP version 5.5.9 or greater.

  • MySQL version 5.5 or greater.

  • PHP extensions pdo and pdo_mysql, or the mysqli extension.

Before you begin

Check the Fedora version.

cat /etc/fedora-release

# Fedora release 28 (Twenty Eight)

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

useradd -c "John Doe" johndoe && passwd johndoe

usermod -aG wheel johndoe

su - johndoe

NOTE: Replace johndoe with your username.

Ensure that your system is up to date.

sudo dnf check-upgrade || sudo dnf upgrade -y

Set up the timezone.

sudo timedatectl set-timezone 'Region/City'

Disable SELinux and Firewall.

sudo setenforce 0

sudo systemctl stop firewalld

sudo systemctl disable firewalld

Install PHP and required PHP extensions

Matomo recommends using PHP 7 as it is more memory efficient and faster than previous PHP versions. Default Fedora repositories contain PHP 7.2, so the installation will be simple.

Install PHP, as well as the necessary PHP extensions.

sudo dnf install -y php php-fpm php-common php-curl php-gd php-cli php-mysqlnd php-xml php-mbstring php-json

Check the version.

php --version

# PHP 7.2.6 (cli) (built: May 22 2018 16:22:08) ( NTS )

# Copyright (c) 1997-2018 The PHP Group

# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Install MariaDB

Install MariaDB.

sudo dnf install -y mariadb-server

Check the version.

mysql --version

# mysql  Ver 15.1 Distrib 10.2.14-MariaDB, for Linux (x86_64) using readline 5.1

Start and enable MariaDB.

sudo systemctl start mariadb.service

sudo systemctl enable mariadb.service

Run the mysql_secure_installation script to improve the security of your MariaDB installation.

sudo mysql_secure_installation

Log into MariaDB as the root user.

mysql -u root -p

# Enter password:

Create a new MariaDB 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> 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 dnf install -y nginx

Check the version.

sudo nginx -v

# nginx version: nginx/1.12.1

Start and enable Nginx.

sudo systemctl start nginx.service

sudo systemctl enable nginx.service

Configure Nginx. Run sudo vim /etc/nginx/conf.d/matomo.conf and populate the file with the following configuration.

server {

    listen 80;


    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-fpm/www.sock;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;



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

Download the latest release of Matomo.

cd /var/www/matomo

wget && unzip


mv piwik/* .

rmdir piwik

Change ownership of the /var/www/matomo directory to nginx.

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

Run sudo vim /etc/php-fpm.d/www.conf and set the user and group to nginx. Initially, they will be set to apache.

sudo vim /etc/php-fpm.d/www.conf

# user = nginx

# group = nginx

Restart the PHP-FPM service.

sudo systemctl restart php-fpm.service

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.

Want to contribute?

You could earn up to $600 by adding new articles.