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:
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
If you don’t use SELINUX your best option is to turn it off. It saves a lot of headaches.
And change the SELINUX=enforcing para SELINUX=disabled
Save and reboot
This is Web based. It needs a web server (Apache), PHP and MySQL database. We’re going to start to configure CentOS with these.
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
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
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
And write the following contents:
<?php phpinfo(); ?>
Save and execute the file in your browser:
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
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.
tar -zxvf 1.7.5.tar.gz
You now have a directory called 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
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
You should be presented with the screen for the Xebo setup. You should scroll down to see if all the requirements are met
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”
We’re almost through the installation.
Create an Administrator account
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.
Just hit next and we’re done.
Now, just enter your credentials created before
Welcome to your Xibo !
Now, you have a complete solution to display information in a variaty of formats in multiple displays.