NolaPro Login

NolaPro Ubuntu 20 Installation

1. Installation Intro

NolaPro runs on Apache, PHP and MySQL. It's possible to run under Nginx, or other web servers, but this tutorial will only cover the Apache setup. Database server of both MariaDB and MySQL are support.

The first thing to do is make sure you system is fully up-to-date before.

sudo apt update -y Hit:1 http://us.archive.ubuntu.com/ubuntu focal InRelease Get:2 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] Get:3 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB] Get:4 http://us.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB] Get:5 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1,031 kB] Get:6 http://us.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [781 kB] Fetched 2,141 kB in 3s (733 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done ...

2. Installing Apache

This tutorial will only cover the basics. You can find a more detailed guide to apache for Ubuntu here: Install and Configure Apache (ubuntu.com)

Apache can be installed on Ubuntu using this command

sudo apt install apache2 -y Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libjansson4 liblua5.2-0 ssl-cert Suggested packages: apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser openssl-blacklist The following NEW packages will be installed: apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libjansson4 liblua5.2-0 ssl-cert ...

Confirm that Apache was installed, running and starts by default.

systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-03-29 08:22:07 America/Detroit; 5min ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 1565 (apache2) Tasks: 55 (limit: 1072) Memory: 5.8M CGroup: /system.slice/apache2.service ├─1565 /usr/sbin/apache2 -k start ├─1568 /usr/sbin/apache2 -k start └─1569 /usr/sbin/apache2 -k start

If the "Loaded" line doesn't read as "enabled", then Apache is not configured to auto start on boot. You can fix this with this command:

sudo systemctl enable apache2

If the "Active" line doesn't read as "running", then Apache may need to be started manually. You can fix this with this command:

sudo systemctl start apache2

Configure your system firewall to allow for http & https

sudo ufw allow http Rules updated Rules updated (v6)

Configure your system firewall to allow for https

sudo ufw allow https Rules updated Rules updated (v6)

3. Installing MySQL/MariaDB

This tutorial will only cover the basics. You can find a more detailed guide to apache for Ubuntu here: How To Install MySQL on Ubuntu 20.04 (digitalocean.com)

sudo apt install mysql-server -y Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server-8.0 mysql-server-core-8.0 Suggested packages: libdata-dump-perl libipc-sharedcache-perl libwww-perl mailx tinyca The following NEW packages will be installed: libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server mysql-server-8.0 mysql-server-core-8.0 ...

Confirm that MySQL was installed, running and starts by default.

sudo systemctl status mysql ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) Fri 2024-03-29 08:22:07 America/Detroit; 5min ago Main PID: 3493 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 1072) Memory: 329.8M CGroup: /system.slice/mysql.service └─3493 /usr/sbin/mysqld

If the "Loaded" line doesn't read as "enabled", then MySQL is not configured to auto start on boot. You can fix this with this command:

sudo systemctl enable mysql

If the "Active" line doesn't read as "running", then MySQL may need to be started manually. You can fix this with this command:

sudo systemctl start mysql

Set Root MySQL Password

sudo mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YOUR_PASSWORD_HERE';"

Start MySQL Configuration

sudo mysql_secure_installation

Type Y then [Enter] to when asked to enable the validate password component.

Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: N

Type in the password you would like to assign to the root user, then press [Enter].

Please set the password for root here. New password:

You'll then be prompted to enter the same password again.

Re-enter new password:

Finally you will be shown the password score and asked to confirm.

Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

Always choose to remove anonymous users.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y

It is highly recommended to disallow the root login.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y

It is recommended to remove the uneeded test database.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y

Always choose to reload the privilege table.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

At the end you should get this message.

Success. All done!

Next you will need to add some specfic setting for NolaPro.

echo 'sql_mode=' | sudo tee -a /etc/mysql/mysql.conf.d/mysqld.cnf > /dev/null

The MySQL service will need to be restarted to pick up the new settings.

sudo systemctl restart mysql

Lets create the NolaPro MySQL User

sudo mysql -u root -p

Enter your root mysql password

Enter password:

You should now be at the MySQL command prompt

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

Create a new database for NolaPro

mysql> CREATE DATABASE IF NOT EXISTS nolapro;

Create the NolaPro user and password. Change the user and password below to something unique and hard to guess. Make sure to write this down, as you will need this username and password later in this guide.

mysql> CREATE USER 'SET_USERNAME_HERE'@'127.0.0.1' IDENTIFIED BY 'SET_NEW_PASSWORD_HERE';

Give your new MySQL user access to the NolaPro database

mysql> GRANT ALL ON nolapro.* TO 'SET_USERNAME_HERE'@'127.0.0.1';

Close the MySQL prompt with the exit command.

mysql> exit;

4. Installing PHP

Lets first install the PHP software. A number of different version of PHP are support. This guide will cover PHP 7.4 using FPM.

sudo apt install php7.4 php7.4-fpm php7.4-curl php7.4-gd php7.4-mbstring php7.4-mysqli php7.4-zip -y Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'php7.4-mysql' instead of 'php7.4-mysqli' The following additional packages will be installed: fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libjpeg-turbo8 libjpeg8 libonig5 libtiff5 libwebp6 libxpm4 php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline Suggested packages: libgd-tools php-pear The following NEW packages will be installed: fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libjpeg-turbo8 libjpeg8 libonig5 libtiff5 libwebp6 libxpm4 php-common php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-fpm php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline ...

Confirm that PHP-FPM was installed, running and starts by default.

systemctl status php7.4-fpm ● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-03-29 08:22:07 America/Detroit; 5min ago Docs: man:php-fpm7.4(8) Process: 11598 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUCCESS) Main PID: 11584 (php-fpm7.4) Status: "Processes active: 0, idle: 2, Requests: 2, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 1072) Memory: 8.2M CGroup: /system.slice/php7.4-fpm.service ├─11584 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf) ├─11596 php-fpm: pool www └─11597 php-fpm: pool www ...

If the "Loaded" line doesn't read as "enabled", then PHP-FPM is not configured to auto start on boot. You can fix this with this command:

sudo systemctl enable php7.4-fpm

If the "Active" line doesn't read as "running", then PHP-FPM may need to be started manually. You can fix this with this command:

sudo systemctl start php7.4-fpm

Run these commands to configure Apache to use PHP.

sudo a2enmod proxy_fcgi setenvif; sudo a2enconf php7.4-fpm; sudo rm /var/www/html/index.html; sudo systemctl reload apache2;

Let's now configure the PHP installation to better operator for NolaPro.

sudo nano /etc/php/7.4/fpm/conf.d/99-nolapro.ini;

Here are required settings that you must have in the file. Replace the timezone below with a entry from this list of timezones that fits your region.

short_open_tag = On date.timezone = America/New_York

Here are recommended settings you can add to the file. Adjust these as you feel fit.

max_input_vars = 99999 upload_max_filesize = 32M post_max_size = 32M memory_limit = 1G max_execution_time = 300

The PHP service will now need restarted to apply the new settings.

sudo systemctl restart php7.4-fpm

5. Installing IonCube

NolaPro Requires that IonCube support be added to your PHP installation to operate.

The installation wizard that IonCube offers is the simplest way to get this software ready.

cd /var/www/html; sudo wget https://www.ioncube.com/loader-wizard/loader-wizard.tgz; sudo tar -xf loader-wizard.tgz; sudo rm loader-wizard.tgz;

Now, access your server via your browser to complete the IonCube installation: http://127.0.0.1/ioncube/loader-wizard.php . If you are accessing your server from another machine, replace the 127.0.0.1 with the needed IP or domain.

After you complete the ioncube installation, don't forget to delete the ioncube directory from your web folder.

sudo rm /var/www/html/ioncube -R

Here are a few tips if you get stuck.


In "Step 1)" you can download a file like this, but replace the URL below with the URL given by the wizard.

sudo wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

After downloading, you can extract the tar like this, but replace the filename shown with the one that you had downloaded.

sudo tar -xf ioncube_loaders_lin_x86-64.tar.gz

In "Step 2)" you can move a file from location to another like this, but replace the path highlighted with the path shown by the wizard.

sudo mv ./ioncube/ioncube_loader_lin_7.4.so /usr/lib/php/20190902

In "Step 3)" it's simplest to copy and paste the file instead of downloading it directly the needed location. Replace the path below with the path that is shown by the wizard.

sudo nano /etc/php/7.4/fpm/conf.d/00-ioncube.ini

Paste the contents of the file and then use Ctrl + X Shift + Y [Enter] to save & exit


In "Step 4)" you can restart your php-fpm service with this command.

sudo systemctl restart php7.4-fpm

6. Installing NolaPro

The final steps are to download and extract the NolaPro files into your web accessible folder.

We will need the zip tool to complete this task. Use this command to install zip into Ubuntu.

sudo apt install zip -y Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: unzip The following NEW packages will be installed: unzip zip ...

Now download and extract the installation files

sudo wget https://www.nolapro.com/download/nolapro_release_php_72.zip; sudo unzip nolapro_release_php_72.zip; sudo chown www-data:www-data /var/www/html -R;

The final parts of the NolaPro installation can be completed via your browser: http://127.0.0.1/ . If you are accessing your server from another machine, replace the 127.0.0.1 with the needed IP or domain.


If you have any troubles completing the installation, please feel free to contact us with questions.