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
1 |
yum clean all |
SELINUX
If you don’t use SELINUX your best option is to turn it off. It saves a lot of headaches.
1 |
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
1 |
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
1 2 3 4 |
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
MySQL
CentOS 7 comes with mariadb and not MySQL.
1 |
yum install mariadb mariadb-server |
After install, add it to the runlevel
1 2 |
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
1 |
systemctl start mariadb |
Set the root password
1 |
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
1 2 3 4 5 6 7 8 9 |
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
1 2 |
MariaDB [(none)]> create database xibo; Query OK, 1 row affected (0.00 sec) |
Now, create a user for xibo
1 2 |
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
1 2 3 4 |
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) |
1 2 |
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
1 |
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
1 |
systemctl restart httpd.service |
Apache root directory is /var/www/html
1 |
vi /var/www/html/phpinfo.php |
And write the following contents:
1 2 3 |
<?php phpinfo(); ?> |
Save and execute the file in your browser:
http://SERVER_IP/phpinfo.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:
1 2 3 4 5 6 7 |
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
1 |
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.
1 |
wget https://github.com/xibosignage/xibo-cms/archive/1.7.5.tar.gz |
Decompress it
1 |
tar -zxvf 1.7.5.tar.gz |
You now have a directory called xibo-cms-1.7.5
1 |
cd xibo-cms-1.7.5 |
copy all the contents to /var/www/html
(If you have virtual servers, copy accordingly)
1 |
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
1 2 |
cd /var/www chown apache:apache -R html/ |
And your permissions should be:
1 2 3 4 |
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
1 |
mkdir /opt/xibolibrary |
Now, since this will be used by apache, we need to set the proper permissions to it
1 |
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
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.
it would be nice to have online installer .iso
Hi Remo !
Why don’t you try and ask them for that feature ? They would love to hear from you !
How do I install the client on ubuntu ?
Hi Romario.
You can check it here :
http://xibo.org.uk/manual/en/install_python_client.html
I don’t think the python client is supported anymore.
Installing on your own server is cool, but now things have moved to docker and it’s a bit more involved. You can try an xibo hosting company like https://www.mysignage.rocks and save yourself some time.
That is nice for full blown signage, but when using it in your company, for small displays, the self hosting mode is better, IMHO. Besides, it’s not hard to install nor use.