How to: Upgrade Xibo Digital Signage

This guide will help you to perform your Xibo upgrade to a new(er) version! Please keep in mind that we will use the old fashioned CMS on an Apache webserver (without Docker!) configuration. This means that if you use the Xibo Docker configuration, this guide is probably not for you!

Introduction

As you probably know Xibo is an open-source Digital Signage (Narrowcast) that will help you to display information, data and advertisements on multiple screens on different locations. I’ve been running Xibo version 1.7.7 for a while now. As the current version as of now is 1.8.9, I thought it would be a great idea to make an upgrade. This is installed on a CentOS 7 environment. In case you’re not familiar with Linux operating systems: this probably means that you’re able to use this guide to upgrade, but will need to tweak the commands used in this guide.

If you’re not running Xibo yet, you could follow my Xibo installation guide that will help you to install a fresh Xibo environment.

Preparation

There are a few things you need to prepare. There are a few dependancies we need to install before we’re able to install. Please check the list down below to make sure you’ve got everything ready!

  • Create a back-up before doing this tutorial. Upgrades do always have a chance to fail. A small guide on how to back-up these files can be found down below.
  • It is recommended to download the files in advance. I will upload the current version to my webserver, but please keep in mind that these may be outdated or removed at any time. For this reason it’s better to download the latest version from the official website(s).
  • Please always read a little bit ahead of the current step you’re at. This might save you some trouble and will help you to understand what’s actually happening.
  • This might take up to several hours to perform depending on your knowledge with Linux operating systems.

Updating Software

According to the Xibo documentation, it’s recommended to have the following items installed and configured:

  • MySQL 5.6 (MariaDB also works)
  • A web server (Nginx, Apache, IIS)
  • PHP 5.6+ (lower than PHP 7)
  • PHP-CLI 5.6+ (lower than PHP 7)
  • PHP PHAR support
  • ZeroMQ bindings for PHP
  • URL Rewriting
  • Virtual Hosts or dedicated web server (modify DocumentRoot)
  • CRON/Scheduled Tasks

In case you’re interested in getting a webserver online on a CentOS machine, follow this guide.

There are a few differences if you compare the required software with the older ‘1.7’ release. As I am currently running PHP 5.6 on my webserver, I will supply the command to get the requirements PHP modules for this version. Please keep in mind if you’re using a different version you need to tweak the command a little bit.

Now we need to install the ZeroMQ binding for PHP.

To install this, we will use ZeroMQ 4.2.3 that is currently the latest stable release that is available. For easy install I’ve created a copy on my webserver, but if security is an issue (and it should be an issue!) it’s recommended to get the latest version at their website. Replace the link down below with the new installation file in case you decide not to use my version of ZeroMQ. To be able to install ZeroMQ, we need to install the development tools first:

If you forget to do so, you will get the errormessage ‘configure: error: no acceptable C compiler found in $PATH‘ when trying to install ZeroMQ.

Group Development Tools Iinstallation

Now that we’ve installed the requirements for ZeroMQ, let’s start installing ZeroMQ itself! I will use the home directory to download the required files and have the installer execute from there.

Configure_ZeroMQ_Citricks

If everything goes smoothly, you should see something similar to the screenshot above. When running the command ‘make’, you should see the following.

Make ZeroMQ

Once this is done, we need to install the following items.

If it asks you to provide the prefix of the ‘libzmq’ installation, just press ‘enter’. It should automatically detected the correct setting.

Now we need to change a line in the configuration file of PHP so it knows we’re using this extension. Open the file by running the command shown down below. Please note that it’s possible that your configuration file is found at a different location!

Once you’ve opened the configuration file, paste the following line in the configuration file.

You could just post it down below the said document. To keep everything nice and tidy I place it under ‘Dynamic Extensions’.

ZereMQ Extension PHP.ini

Press ‘CTRL-O’ to save the document. Then press ‘CTRL-X’ to exit the document. These commands will work for the text editor ‘nano’.

Xibo Upgrade preparations

Since we’re done with the configuration of the webserver itself, we can go on with the Xibo upgrade. This is how Xibo processes it’s upgrades:

  1. Create a back-up of your Xibo file in your ‘./www’ folder and one of your SQL database.
  2. Move the contents of your Xibo files to another folder. Call the old folder something like ‘Xibo-old’ or ‘Xibo-archive’.
  3. Copy the new Xibo installation to the place of your previous install.
  4. Replace your new ‘settings.php’ file with the file from the previous installation.
  5. Now open Xibo through the installation and the upgrade process should pop-up!
  6. Your Xibo upgrade is ready.

Of course all of this is easier said than done. Let’s start the Xibo upgrade process.

To create an easy back-up, find your Xibo installation directory. Mine is found at ‘/var/www/html/’. Zip your Xibo directory to your home directory. Change the command down below as it will now save the compressed file to ‘home/rick’. Unless you’re also called ‘Rick’ this will not work!

Xibo Upgrade Backup Directory

Now we got the Xibo CMS files, let’s get a database dump. This one is pretty easy as it also requires one single command. Tweak the command down below so it’s the same as your own user/database name.

This might take a minute or two. Once it’s done I recommend to get all the files to an external disk or location. A back-up that’s stored on the local device isn’t a back-up, it’s just an extra security risk!

We will now download the Xibo CMS files to your home directory on your server.

Note: In case you need a back-up or a mirror: https://citricks.net/downloads/xibo-cms-1.8.9_citricks.zip

 

Now we move our current installation to a different folder. Change the destination folder to something on your own webserver.

Move Files Xibo upgrade

If everything is okay, there is no content in your webserver directory now. Which is perfectly fine as we need to extract the files of the new CMS to your webserver.

The current website files are stored in a different folder than before. We need to change your webserver settings so it points to this direction whenever you or someone else visits the web page.

Now change the line.

To:

This should point to the directory where all the website files are!

Once done, scroll down below and change the configuration below:

To:

Press ‘CTRL-O’ to save your configuration file. Then press ‘CTRL-X’ to close the document. Now reboot your machine to make sure the changes are applied.

Now we need to configure XMR en XTR. We’re running close on finishing our Xibo upgrade!

Let’s open the configurtion file of XMR.

Add the following lines to the empty file.

According to the documentation of the Xibo XMR install guide, the options are used for the communication.

  • listenOn is the XMR Private Address for CMS -> XMR communication
  • pubOn is the XMR Public Address for XMR -> Player communication
  • debug determines the level of debug messaging output and whether the output goes to the console (false = no)

Save the file.

Now we’re going to configure XTR by using nano.

Add the following lines.

Do not remove the astericks(*) as it states that the command can be run at any time.

This will be the last step before we can open the Xibo upgrade page. As stated before we needed to back-up the ‘settings.php’ before replacing and moving the website files. Now is the time to dust of the file as we need to replace it with our current file.

Change the rights of the folders.

Reboot your server to prepare for the Xibo upgrade. This isn’t necessary but it’s just to make sure all changes are applied correctly!

Xibo Upgrade Process

Now we’ve done all the preparations we can head to the Xibo upgrade page. Open your favorite browser and refer to the server IP address. If everything is configured correctly you should be greeted with the Xibo installation page on the page ‘<your webserver>/install’. Note you should be forwarded to this pagine automatically. If this is not the case, please check the settings in your configuration files as you probably missed something.

Xibo Upgrade Installation page

Press next if everything is correct. You will see an overview of the steps involved in this upgrade.

Xibo Upgrade database

Hit ‘Start’ to start the Xibo upgrade process. The Xibo upgrade progress might take a while, so if you want you can grab a cup of coffee in the meantime. I had a few errors along the way stating some table columns already existed. Had to manually start the upgrade process again as it halted after the error. I don’t think this will cause too much problems.

Once the upgrade is done, you will see the following message.

Xibo Upgrade Finished

 

 


 

This is the end of the tutorial. It took me around 6 hours to do the research, gather all the requirements, perform the upgrade and last but not least: document all the steps. Please note that I do not offer any official support at this moment. I will do my best to answer all questions, but due to time limitations (and mostly work) I am not able to give any guarantees!

As always: any feedback is greatly appreciated.