Skip to main content

Rocky/RHEL 9 Upgrade Guidance Note

This document provides high-level guidance to customers that undertake their own hosting and management of Jadu software running on a LAMP (CentOS 7 Linux, Apache, MariaDB, PHP) server software stack and wish to undertake an upgrade to either Rocky/RHEL 9.

This document provides guidance to system administrators, and is not intended as a universal step by step guide - if such a level of support is required, please contact Jadu for a professional services quotation.

Overall Approach

In order to upgrade your platform, you will need a new server running Rocky 9 or RHEL 9. The upgrade will copy the database and some of the file systems from the old server to the new server. Some amount of service downtime is expected during the migration process.

This guide applies to sites running Photon and Classic front ends as well as sites with and without Jadu Forms. Any differences for a particular configuration will be highlighted at the relevant point.

note

At the time this document was created (February 2024) Jadu software does not support PHP versions above 8.1, MariaDB versions above 10.5 or Rocky/RHEL versions above 9.

1. Ensure your software meets the minimum version

In order to migrate to Rocky/RHEL 9, your server must be running Jadu CMS 21.x.x or above, or any version of Jadu Central.

If not, patch your site to at least Jadu CMS 21.x.x before continuing.

2. Setup new servers

You will need to commission new servers for the upgrade. Full details on setting up Linux Servers can be found in the Jadu Central Installation guide. After installing the CMS, Forms customers will also need to install the Forms module using the Central Forms installation guide.

Ensure you can log into the Jadu Control Center after installation has completed.

3. Backup content from old CentOS 7 Server

3a. Backup databases

Log into the old database server and take a backup of the database(s). You will need to take backups of the main Jadu database (typically called jadudb) as well as databases for Galaxies sites (these databases are typically prefixed with ms_jadudb_*).

Use mysqldump to take the database backups. Make a note of the backup destination.

3b. Backup directories

Along with the database, some content is stored on the file system. Compress the following directories into zip files for ease of transfer. Either use built in linux compressed zip functionality to backup the directories or your preferred compression software.

Replace /path/to/jadu with the root directory of your jadu installation, this is typically /var/www/jadu.

DirectoryNotes
/path/to/jadu/public_htmlContains the web accessible scripts and content
/path/to/jadu/varContains non web accessible content.
/path/to/jadu/configContains the site configuration files
/path/to/jadu/jadu/customContains custom code (if exists)
/path/to/jadu/srcContains site code
/path/to/jadu/micrositesContains scripts for galaxies sites.
/path/to/jadu/jadu/PayBridge/PSP/AdapterPayBridge PSP adapters (if using PayBridge)
/path/to/jadu/PAYBRIDGE_*PayBridge adapter version files (if using PayBridge)
/path/to/jadu/.meteor/file-migrationsContains history of file migrations run by patching

4. Copy content to new server

Download the backups from the source server and transfer to a directory on the new server outside of the Jadu root installation directory e.g. /home/(user)/migration and extract to this directory.

5. Update Database

5a. Backup the databases on the new Rocky/RHEL 9 server.

This can be done using the same mysqldump command as above. The backup is useful in case importing the database fails for some reason, and it becomes necessary to restore the old database to return to a working base system.

5b. Restore database from the backup on the new server

Run the below command to restore the CentOS 7 database to the new server:

mysql -u root -p < /path/to/centos7-db-backup.sql 

6. Update File System Content

Restore the file system content by unzipping the zipped folders exported from the source server. Copy the unzipped folders (except config) into the corresponding locations in the jadu installation directory.

When copying public_html you’ll be warned that there is a folder with the same name as the file name you specified related to blogImages.

7. Check database permissions

Log into the database as the root user through the mysql command. Run ‘SHOW DATABASES;’, noting down any galaxy databases (usually named ms_jadudb_*).

Open /var/www/jadu/config/system.xml, and note the username password combinations for jadu, jaduGU and jaduGM.

These credentials should all be able to access the jadudb database, plus any galaxy databases (ms_jadudb_*). Test that each user can access all the databases with the following command:

mysql -u (username) -p (password) (database name)

8. Update configuration

You now need to update the site configuration. In step 5 we extracted the config directory but didn’t copy the contents of the extracted directory over the existing config directory. Instead only specific configuration values will be copied.

It is recommended to backup the configuration file within the jadu installation directory before making changes to it.

8a. system.xml

Copy the configuration values from the backed up config/system.xml file into the config/system.xml file of the jadu installation.

  • secure_key
  • des_encryption_mssql_cert_pass

8b. constants.xml

Copy the configuration values from the backed up config/constants.xml file into the config/constants.xml file of the jadu installation.

  • csrf_token_salt
  • hash_salt
  • encryption_key

8c. mail.xml

If your original server has a custom mail setup, replace the config/mail.xml file in the jadu installation directory with the one from the source server.

8d. datastore.xml

If you’ve set up non file based caching for the site, update config/datastore.xml with the values from the backup (if applicable). If you have set up non file based caching you will need to update cache_data_store in system.xml to the correct cache type.

8e. ckeditor.xml

Copy the entire file from the backup up config/ckeditor.xml to the jadu config directory config/.

8f. xfp/constants.xml

Copy the entire file from the backup up config/xfp/constants.xml and replace it in the jadu installation directory config/xfp/.

9. Clear Cache

Delete all the contents under the /path/to/jadu/var/cache directory.

10. Patch to latest Jadu

Finally patch to the latest Jadu version. This will update your site to the version of Jadu that supports the new stack (minimum version CMS 21.0.0 and XFP 8.0.0).

If you actively use Jadu Forms you will need to ensure forms are switched offline before patching commences. This needs to be done directly in the database. Open up MySQL and run the SQL statement:

UPDATE JaduXFormsConfiguration SET value = 'false' WHERE name = 'forms_online';
Follow the usual patch process to deploy the patch.

11. Update DNS entries

The site is now ready to test. As the site has been migrated from the source site, update your hosts file to the IP address of the new server and test the site using the original domain.

Additional Nodes

For each additional web node repeat steps 5, 7, 8 and 9 on each web node.