Learn How To Install Matomo Analytics on Debian 9

May 24, 2019

Table of Contents

If you are using a different system, please check our other tutorials.

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 Debian 9 IT Web Services 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 Debian version.

lsb_release -ds
# Debian GNU/Linux 9.4 (stretch)

Ensure that your system is up to date.

apt update && apt upgrade -y

Install necessary packages.

apt install -y sudo unzip apt-transport-https curl wget dirmngr

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

Install PHP and required PHP extensions

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

Install PHP, as well as the necessary PHP extensions.

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

Check the version.

php --version

Install MariaDB

Install MariaDB.

sudo apt install -y mariadb-server

Check the version.

mysql --version

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.

sudo 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 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 of 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.

Need help?

Do you need help setting up this on your own service?
Please contact us and we’ll provide you the best possible quote!