How to Install Open Web Analytics on CentOS 7

Published on: Fri, Mar 8, 2019 at 11:47 am EST

Open Web Analytics (OWA) is an open-source web analytics program that can be used to track and analyze how people use your websites and applications. OWA analytics can easily be added to pages with simple Javascript, PHP, or REST based APIs. Open Web Analytics source code is hosted on Github. This guide will show you how to install OWA on a fresh CentOS 7 Vultr instance.

Requirements

  • Nginx
  • MariaDB
  • PHP 5.3 or greater with the following extensions:
    • PCNTL
    • mysql

Before you begin

Check the CentOS version.

cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)

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.

Set up the timezone.

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Ensure that your system is up to date.

sudo yum update -y

Install necessary packages.

sudo yum install -y wget curl vim git unzip

For simplicity, disable SELinux and Firewall.

sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld

Install PHP

Setup the Webtatic YUM repo.

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Install PHP and required PHP extensions.

sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-mysql

Check the version.

php --version
# PHP 7.2.7 (cli) (built: Jul  1 2018 08:22:47) ( NTS )

Start and enable PHP-FPM.

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Install MariaDB and setup a database

Install MariaDB.

sudo yum install -y mariadb-server

Check the version.

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

Start and enable MariaDB.

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Run mysql_secure_installation to improve security and set the password for the root user.

sudo mysql_secure_installation

Connect to the MariaDB shell as the root user.

mysql -u root -p
# Enter password:

Create an empty MariaDB database and user for OWA, and remember the credentials.

CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit

Install and configure Nginx

Install Nginx.

sudo yum install -y nginx

Check the version.

nginx -v
# nginx version: nginx/1.12.2

Start and enable Nginx.

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

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

server {
    listen 80;
    listen [::]:80;

    server_name example.com; # Check this
    root /var/www/owa; # Check this

    index index.php index.html;

    location / {
      try_files $uri $uri/ /index.php?q=$uri&$args;
    }
    location ~ \.php$ {
      try_files $uri =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass 127.0.0.1:9000; # Check this
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param SCRIPT_NAME $fastcgi_script_name;
      fastcgi_index index.php;
      include fastcgi_params;
    }
}

Test the configuration.

sudo nginx -t

Reload Nginx.

sudo systemctl reload nginx.service

Install Open Web Analytics (OWA)

Create a document root directory.

sudo mkdir -p /var/www/owa

Change ownership of the /var/www/owa directory to johndoe.

sudo chown -R johndoe:johndoe /var/www/owa

Download the latest release OWA release.

cd /var/www/owa
wget https://github.com/padams/Open-Web-Analytics/archive/1.6.2.zip
unzip 1.6.2.zip
rm 1.6.2.zip
mv Open-Web-Analytics-1.6.2/* . && mv Open-Web-Analytics-1.6.2/.* .
rmdir Open-Web-Analytics-1.6.2

NOTE: Please check The Open Web Analytics site for the latest version.

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

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

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

sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

Restart PHP-FPM.

sudo systemctl restart php-fpm.service

Navigate to the OWA installation page in your web browser. Replace example.com with your domain name. The OWA web installer page will appear.

Follow the installer. Once you've gone through each of the steps, your OWA installation will be complete.