Required Configuration to Run Matomo

To run Matomo (Piwik) your host needs a couple of things:

  • Webserver such as Apache, Nginx, IIS, etc.
  • PHP version 5.5.9 or greater
  • MySQL version 5.5 or greater, or MariaDB
  • (enabled by default) PHP extension pdo and pdo_mysql, or the mysqli extension.

We recommend using the latest PHP 7.x release as it is more memory efficient and faster than previous PHP versions.

We recommend using MySQL 5.7+ or MariaDB for your database.

To make the most out of Matomo, you also need a few extra PHP extensions such as the PHP GD extension that is used to generate the sparklines (small graphs), graphs in statistics Email reports, as well as graphs in the Matomo Mobile App. The list of PHP extensions you are recommended to install are:

$ sudo apt-get install php7.0 php7.0-curl php7.0-gd php7.0-cli mysql-server php7.0-mysql php-xml php7.0-mbstring

For medium and high traffic websites, please see the following FAQ for more information: Matomo setup for high traffic websites

MySQL User requirements

When installing Matomo, you will need to specify a MySQL username and password. The MySQL user must have permission to create and alter tables in the database.

The MySQL USER should have the permission to SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, FILE.

→ Click here for detailed instructions on how to create a new database and MySQL user.

Note: Matomo won’t work with a MySQL load balancer such as ProxySQL unless you can ensure that all queries within a given established connection are always sent to the same database server.

To know how many CPUs and how much RAM and disk Disk space to use, the most important factor is how many requests you will be tracking per month in Matomo. Other factors which would impact server capacity planning include how many websites are created, and how many user segments need to be processed.

As a general rule, when tracking more than 1 million user actions per month, we recommend to have at least two servers, one for the database and one for handling all the HTTPS requests (Tracking, API) and the Report processing.

Below you will find general recommendations for which instance types to use. While these should work well for most cases, you may need to adjust the instances types to suit your processing workload.

Tracking 100,000 pageviews per month or less

  • One server is sufficient to host both the database and app server
  • App server minimum recommended configuration: 2 CPU, 2 GB RAM, 50GB SSD disk.

Tracking 1 million pageviews per month or less

  • One server can be sufficient to host both the database and app server
  • App server minimum recommended configuration: 4 CPU, 8 GB RAM, 250GB SSD disk.

Tracking 10 million pageviews per month or less

  • Two servers recommended
    • 1 x App servers, at least 8 CPUs, 8 GB RAM, 100GB SSD disk.
      • Or 2 x App servers, at least 4 CPUs, 4 GB RAM, 100GB SSD disk.
    • 1 x Database server, at least 8 CPUs, 16 GB RAM, 400GB SSD disk.

Tracking 100 million pageviews per month or less

  • Three servers at minimum recommended:
    • 3 x App servers (or only 2x), with each: 16 CPUs, 8 GB RAM, 100GB SSD disk.
    • 1 x Database server, at least 16 CPUs, 32 GB RAM, 1 TB SSD disk.
      • or 2 x DB servers in replication
    • 1 x Load balancer recommended
    • 1 x CDN recommended

Tracking more than 100 million pageviews per month

Please contact us for more details. You will need multiple App servers and we can help you setup a high scale Matomo configuration. Matomo can support more than 1 billion pageviews per month and even many more when data can be split across multiple Matomo instances.

If you do not have a server with PHP 7 enabled, we have created our own high quality Matomo hosting service providing a pre-installed Matomo for a small fee. See our Matomo page for more information.

Next step is to Install Matomo.