Matomo Requirements
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.
Recommended Configuration
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, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, FILE.
Click here for detailed instructions on how to create a new database and MySQL user.
Recommended Servers sizing (CPU, RAM, Disks)
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.
- 1 x App servers, at least 8 CPUs, 8 GB RAM, 100GB 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 up to 1 billion pageviews per month or more
Please contact us for more details. You will need multiple App servers and we can help you setup a high scale Matomo configuration.
Recommended Web Hosts
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.