UXWizz
WebsitePricingDemoTwitter (X)
  • Introduction
  • 🛠️ Installation
    • Requirements
      • Limitations
      • Server specs (CPU, RAM)
    • Installation guide
      • Uploading the script
      • Creating a MySQL database
      • Running the installer
    • Install on a new server
      • Ubuntu 20.04 (or higher)
      • DigitalOcean
    • Docker
      • Via Docker Compose
      • Standalone Docker image
    • Adding the tracking code
      • Automatic SPA pageview tracking
      • Add tracker to Next.js App
      • Add tracker to React Router App
    • Optimization tips
      • MySQL/MariaDB
      • Auto-delete old data (cron jobs)
      • Apache
    • Frequently Asked Questions
  • 🔧JavaScript API
    • Tags
    • Events
    • Hooks/callbacks
    • Other API functions
    • Session Recording
      • Ignore specific elements
  • 📖Guides and features
    • Goals (NEW!)
    • Ask AI (NEW!)
    • Basic usage
    • A/B testing
    • Usage tips
    • Dashboard user access level
    • Resetting the admin password
    • Database querying
    • Technical details
      • IP Geolocation
    • Troubleshooting
      • Agency
        • MultiDB
      • Dashboard
        • Refreshing dashboard sub-page leads to 404 error
        • Website iframe not loading (x-frame-options)
        • License says "invalid"
        • Updating Fails
      • Tracking
        • No data is being recorded
        • Can't include tracker via Google Tag Manager
        • The A/B test JS file is missing
      • WordPress
        • Cloudways 403 Forbidden screen on WordPress
        • NGINX 403 Forbidden screen on WordPress
    • Extending the dashboard
    • Support
    • Migrating to a new server
  • 🎓Useful Examples
    • Feedback form (polls)
    • Tracking 404 Pages
    • Tracking UTM parameters
    • Tracking Google Ads GCLID
    • Storing user device types
    • Track video playback
  • 📜About
    • Changelog
    • Personal Data Information
    • Privacy Policy (uxwizz.com)
    • Licenses and pricing
    • [Deprecated] License Subscriptions
Powered by GitBook
On this page
  • Steps summary:
  • LAMP Setup
  • Basic Security
  • Installing UXWizz
  • Adding your domain name
  • Install certbot

Was this helpful?

  1. 🛠️ Installation
  2. Install on a new server

Ubuntu 20.04 (or higher)

PreviousInstall on a new serverNextDigitalOcean

Last updated 4 months ago

Was this helpful?

This guide assumes that you already have SSH (console) access to a clean Ubuntu installation. If you do not already have a server, check out the .

Steps summary:

You will learn how to setup the LAMP stack and how to install UXWizz.

LAMP Setup

To install Apache, PHP, MariaDB, run those commands in order:

sudo apt install apache2
sudo apt install php libapache2-mod-php
sudo apt install mariadb-server
sudo apt-get install php-mysql

Basic Security

Use those commands to enable firewall (ufw) and improve the default MySQL security.

Those steps are optional, but recommended. Follow the prompts whenever necessary.

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo mysql_secure_installation

Installing UXWizz

By default, the 14 days trial version will be installed. You can then upgrade to the full version using a valid license key in the interface (Settings->Updates). If you want to install directly the full version, replace the second line with curl -Lo userTrack.zip https://www.uxwizz.com/download-latest-version?variant=rg&cv=6.4.0&license=YOUR_LICENSE_CODE

Remember to replace YOUR_LICENSE_CODE with the license code received via email and to change variant accordingly (wp for WordPress version, ag for the Agency Version).

Replace YOUR_ROOT_DATABASE_PASSWORD with the password chosen when you ran mysql_secure_installation.

cd /var/www/html
curl -Lo userTrack.zip https://www.uxwizz.com/trial-download
apt install unzip
unzip userTrack.zip
rm userTrack.zip
mv userTrack/* userTrack/.* .
find . -type d -exec chmod 0777 {} +
find . -type f -exec chmod 0666 {} +
rm userTrack -r
ust_rootp=YOUR_ROOT_DATABASE_PASSWORD
ust_db=uxwizz
ust_user=uxwizz
ust_password="$(openssl rand -base64 12)"
mysql -u root -p"$ust_rootp" -e "CREATE DATABASE $ust_db /*\!40100 DEFAULT CHARACTER SET utf8 */;"
mysql -u root -p"$ust_rootp" -e "CREATE USER $ust_user@'%' IDENTIFIED BY \"$ust_password\";"
mysql -u root -p"$ust_rootp" -e "GRANT ALL PRIVILEGES ON $ust_db.* TO $ust_user@'%';FLUSH PRIVILEGES;"
sed -i "s*password = ''*password = '$ust_password'*" server/dbconfig.php
sed -i "s*username = 'root'*username = '$ust_user'*" server/dbconfig.php
sed -i "s*db_name = 'uxwizz'*db_name = '$ust_db'*" server/dbconfig.php
apt-get install php-zip -y
a2enmod headers rewrite
systemctl restart apache2

If, after the installation you need to see the database connection credentials, the values are stored in server/dbconfig.php.

Adding your domain name

Install certbot

sudo apt update
sudo apt install snapd -y
sudo snap install snap-store
sudo snap install --classic certbot

Note: If accessing yoursite.com/server shows the Directory listing instead of 'Forbidden', it means that .htaccess files don't work properly. To fix this, set AllowOverride to All in your Apache2 config. You can automatically set it, assuming default paths, by running this command:

sudo sed -i 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf

Certbot is used to generate a free certificate and manage its auto-renewal.

To set your own domain name for this dashboard, .

recommended server specs
Install Apache, PHP, MariaDB
Improve security configuration
Install UXWizz
Use your own domain name
Let's Encrypt
see this adding your domain name section