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 Ubuntu 16.04 Vultr server instance.
Requirements
- Nginx.
- 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, so 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 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.