Xibo is a powerful Digital Signage content management system and suite of signage players.

Digital Signage, from Wikipedia,  is a form of electronic display that shows information, advertising and other messages. Digital signs (such as LCD, LED, plasma displays, or projected images) can be found in public and private environments, such as retail stores and corporate buildings

The great thing about Xibo is the possibility to display different content in multiple displays and all managed in the same place.

Is has two parts – a server part – Xibo CMS – and the client applications.

We’re going to perform the following tasks:

CentOS 7

Let’s start by configuring CentOS.

Note: I’m going to perform all these steps as root. “With great power comes great responsibility”

The base repository for CentOS has a lots of packages, but I like to add the EPEL repository that has a lot more.

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Now, update your CentOS installation

yum clean all

SELINUX

If you don’t use SELINUX your best option is to turn it off. It saves a lot of headaches.

vi /etc/sysconfig/selinux

And change the SELINUX=enforcing para SELINUX=disabled

Save and reboot

CMS

This is Web based. It needs a web server (Apache), PHP and MySQL database. We’re going to start to configure CentOS with these.

Apache

Let’s install apache2

yum install httpd

You can now edit your apache configuration file in /etc/httpd/conf/httpd.conf

Now let’s add the apache2 service so it starts with every reboot

systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

systemctl start httpd.service

Head to your browser and see if everything is working

apache

MySQL

CentOS 7 comes with mariadb and not MySQL.

yum install mariadb mariadb-server

After install, add it to the runlevel

systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

Let’s configure it

If you prefer, you can execute the mysql_secure_installation script to tighten your installation. We’re going to execute the default install script

systemctl start mariadb

Set the root password

mysqladmin -u root password '<your_password>'

Now, we have two options:

  • We can create a database for use with xibo
  • Just proceed and let Xibo install procedure to create a database for us

Create a database for Xibo

mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.44-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement

Create a database. I’ll called it xibo

MariaDB [(none)]> create database xibo;
Query OK, 1 row affected (0.00 sec)

Now, create a user for xibo

MariaDB [(none)]> create user 'xibouser'@'localhost' identified by 'some_password_to_no_forget';
Query OK, 0 rows affected (0.00 sec)

Give it permissions on xibo database

MariaDB [(none)]> grant select,insert,alter,update,delete,create,drop,lock tables
    -> on xibo.*
    -> to 'xibouser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

You can now quit and proceed with the installation

PHP

Xibo requires some PHP extensions to be installed. Let’s install PHP with the support for all those extensions

yum install php php-gd php-soap php-mysql php-mcrypt php-JsonSchema php-xml php-intl

After all installed, let’s see what support do we have built in with PHP

Restart the web server

systemctl restart httpd.service

Apache root directory is /var/www/html

vi /var/www/html/phpinfo.php

And write the following contents:

<?php
phpinfo();
?>

Save and execute the file in your browser:

http://SERVER_IP/phpinfo.php

apache_php

Xibo PHP configuration

Xibo has a few requirements for PHP for it to work well. Edit the php.ini file and change the following options:

open_short_tags = on

post_max_size = 128M

upload_max_filesize = 128M

max_execution_time = 120

Is always also good to configure the timezone. while editing the php.ini file, add your timezone to date.timezone option

Save and restart apache

systemctl restart httpd.service

Xibo CMS

Let’s start installing and configuring Xibo CMS.

Head to xibo.org.uk and download the latest version. As of this article, Xibo CMS is in version 1.7.5.

wget https://github.com/xibosignage/xibo-cms/archive/1.7.5.tar.gz

Decompress it

tar -zxvf 1.7.5.tar.gz

You now have a directory called xibo-cms-1.7.5

cd xibo-cms-1.7.5

copy all the contents to /var/www/html

(If you have virtual servers, copy accordingly)

cp -rv * /var/www/html

Now, let’s configure directory permissions.

By default, Apache runs as apache user and apache group. Let’s change the owner and group of the html directory

cd /var/www
chown apache:apache -R html/

And your permissions should be:

ls -l
total 4
drwxr-xr-x 2 root   root      6 Nov 19 21:43 cgi-bin
drwxr-xr-x 9 apache apache 4096 Jan 15 16:16 html

Now, before starting with the Xibo installation, we need to setup a directory (outside the Apache root directory) for the library – all the files uploaded to Xibo to be displayed. I’m going to create it in /opt and call it xibolibrary

mkdir /opt/xibolibrary

Now, since this will be used by apache, we need to set the proper permissions to it

chown apache:apache /opt/xibolibrary

Now we’re done and ready to start.

Fire up a browser and head to your server IP

http://SERVER_IP/

You should be presented with the screen for the Xebo setup. You should scroll down to see if all the requirements are met

Xebo_install1 Xebo_install2

If everything is ok, click next

We now have two options:

  • If we didn’t create a database for Xibo, we choose “Create a new database”
  • If we created a database, choose “Use an existing database”

I’m going to “Use an existing database”

Xebo_install3

We’re almost through the installation.

Create an Administrator account

Xebo_install4

Now, we need to give it the full path of the library directory we set up earlier and create a “Server Key” that will be used when adding clients. You don’t have to write it down, since it will be available on the Administrator panel.

Xebo_install5

Just hit next and we’re done.

Now, just enter your credentials created before

Xebo_install6

Welcome to your Xibo !

Xebo_install7

Now, you have a complete solution to display information in a variaty of formats in multiple displays.

References

Xibo website