Hébergement Xibo sous CentOS

Logo XiboUn de mes clients est une société publicitaire de Nîmes spécialisée dans l’affichage dynamique. Il s’agit là d’une forme d’affichage électronique présentant des vidéos publicitaires sur des écrans plasma dans les salles d’attente des médecins, dans les gares, les aéroports, etc.

Xibo est une solution Open Source d’affichage dynamique, contrôlée par une interface web centralisée, et qui permet de diffuser des contenus multimédia sur une série de postes clients. L’application permet de créer l’équivalent d’une chaîne de télévision avec une administration simple du contenu et de la durée d’affichage.

Cet article décrit l’installation de Xibo sur un serveur dédié tournant sous CentOS 7.

Prérequis

Les postes clients se connectent au serveur sur le port 9505 en TCP. Il faut donc songer à ouvrir ce port dans le pare-feu.

Configuration de SELinux

Étant donné que nous installons Xibo en-dessous de /var/www, tous les fichiers nouvellement créés seront correctement étiquetés httpd_sys_content_t. Rien à signaler de ce côté-là.

Xibo doit pouvoir envoyer des mails via Postfix, ce qu’il faut explicitement autoriser.

# setsebool -P httpd_can_sendmail on

Apache possède les droits d’écriture sur une partie de l’arborescence /var/www/slackbox-xibo. Ces droits d’écriture seront définis par le biais des permissions Unix classiques, mais il faut également le spécifier du côté de SELinux.

# setsebool -P httpd_unified on

Installation des modules PHP

En dehors d’une installation minimale de PHP 5.6 avec php56w-mysql, Xibo requiert également les modules PHP suivants.

  • php56w-gd
  • php56w-mcrypt
  • php56w-soap
  • php56w-xml

Installer ces modules avec Yum et relancer Apache.

Configuration de PHP

La configuration par défaut de PHP ne permet pas de traiter des fichiers un peu plus volumineux. Il faut donc l’adapter en conséquence en éditant /etc/php.ini.

...
max_execution_time = 120
...
memory_limit = 128M
...
post_max_size = 128M
...
upload_max_filesize = 128M
...

Configuration de l’hôte virtuel

La configuration de l’hôte virtuel autorise les directives placées dans le fichier .htaccess à la racine de l’installation. Voici les options préconisées par la documentation officielle de Xibo.

# /etc/httpd/conf.d/10-xibo.slackbox.fr.conf

# http://xibo.slackbox.fr -> https://xibo.slackbox.fr
<VirtualHost *:80>
  ServerName xibo.slackbox.fr
  Redirect / https://xibo.slackbox.fr
</VirtualHost>

# https://xibo.slackbox.fr
<VirtualHost _default_:443>
  Header always set Strict-Transport-Security \
    "max-age=63072000; includeSubDomains"
  ServerAdmin info@microlinux.fr
  DocumentRoot "/var/www/slackbox-xibo/web"
  <Directory "/var/www/slackbox-xibo/web">
    AllowOverride All
    Options Indexes FollowSymLinks MultiViews
    Order allow,deny
    Allow from all
    Require all granted
  </Directory>
  ServerName xibo.slackbox.fr:443
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/chemin/vers/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/chemin/vers/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/chemin/vers/fullchain.pem
  BrowserMatch "MSIE [2-5]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
  ErrorLog logs/xibo.slackbox.fr-error_log
  CustomLog logs/xibo.slackbox.fr-access_log common
</VirtualHost>

Téléchargement

Créer un répertoire de téléchargement approprié pour ranger Xibo.

# mkdir -p /root/webapps/xibo

Lancer Links depuis le répertoire de téléchargement.

# cd /root/webapps/xibo
# links https://github.com/xibosignage/xibo-cms/releases

Xibo propose essentiellement deux méthodes d’installation :

  • classique sur un serveur web
  • via une image Docker

Les développeurs de Xibo conseillent d’utiliser l’image Docker, probablement au vu d’une poignée de prérequis quelque peu exotiques. Nous allons tout de même passer par l’installation classique et récupérer l’archive correspondante, en l’occurrence xibo-cms-1.8.5.tar.gz.

Installation de ZeroMQ

ZeroMQ est une bibliothèque de messagerie asynchrone haute performance, destinée à être utilisée dans des applications distribuées ou concurrentes. Sous CentOS, elle est fournie par le dépôt EPEL.

# yum install zeromq zeromq-devel

L’extension PHP correspondante n’est pas disponible dans les dépôts de paquets. Nous allons donc plonger les mains dans le cambouis et la construire nous-mêmes.

# cd /usr/src
# git clone https://github.com/mkoppanen/php-zmq
# yum install php56w-devel
# cd php-zmq
# phpize
# ./configure
# make
# make test
# make install

L’extension s’installe vers /usr/lib64/php/modules/zmq.so. Pour l’utiliser, il va falloir créer un fichier /etc/php.d/20-zmq.ini et l’éditer comme ceci.

; Enable ZeroMQ extension
extension=zmq.so

Installation de Xibo

Créer la base de données.

# mysql -u root -p
Enter password: ********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.52-MariaDB MariaDB Server

MariaDB [(none)]> create database `slackbox-xibo`;
Query OK, 1 row affected (0.02 sec)

MariaDB [(none)]> grant all on `slackbox-xibo`.* 
    -> to slackboxuser@localhost 
    -> identified by '********';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
Bye

Décompresser l’archive téléchargée à la racine des hôtes virtuels.

# cd /var/www
# tar xvzf /root/webapps/xibo/xibo-cms-1.8.5.tar.gz

Renommer le répertoire résultant.

# mv xibo-cms-1.8.5 slackbox-xibo

La documentation officielle ne mentionne pas les permissions de l’application, et les développeurs ne fournissent que des indications très vagues quant aux droits d’accès. L’approche pragmatique consiste ici à attribuer “à la louche” les fichiers de l’application au processus qui fait tourner le serveur. Une fois que Xibo est installé, on pourra restreindre ces droits d’accès trop permissifs.

# chown -R apache:apache slackbox-xibo
# chown microlinux:microlinux slackbox-xibo

À partir de là, on peut ouvrir l’URL de Xibo dans un navigateur web.

Installation Xibo

L’installateur inclut un script de vérification pour les nombreux prérequis.

Installation Xibo

Dans l’écran de configuration de la base de données, sélectionner l’onglet Existing et fournir les paramètres de connexion à la base.

Installation Xibo

Définir un utilisateur avec les droits d’administration.

Installation Xibo

La prochaine étape consiste à renseigner le chemin complet du répertoire library, qui contiendra les vidéos. La clef serveur est un code généré de manière aléatoire. Ce code est accessible dans l’application, et il est possible de le personnaliser.

Installation Xibo

L’installateur m’a affiché l’erreur suivante, dûe à la présence d’un répertoire temp à l’intérieur du répertoire library.

Installation Xibo

Pour résoudre le problème, il suffit de supprimer le répertoire en question et de relancer cette étape de l’installation.

# rmdir /var/www/slackbox-xibo/library/temp

À présent, on peut se connecter à l’application.

Installation Xibo

Voilà comment se présente la page d’accueil de l’interface.

Installation Xibo

Configuration de XMR

XMR (Xibo Message Relay) est la partie de l’application qui se charge d’envoyer les messages publicitaires depuis le serveur vers les postes clients. XMR est fourni dans le répertoire vendor/bin de Xibo et requiert un fichier de configuration config.json.

On va donc créer vendor/bin/config.json et éditer ce fichier en renseignant l’adresse IP du serveur, comme ceci.

{
  "listenOn": "tcp://localhost:50001",
  "pubOn": ["tcp://163.172.xxx.yyy:9505"],
  "debug": false
}

Configuration de XTR

XTR (Xibo Task Runner) est le planificateur de tâches de l’application. Les tâches typiques comprennent la maintenance, les alertes mail ou l’archivage. Concrètement, les tâches sont lancées par le script PHP bin/xtr.php, lui-même géré par CRON.

# crontab -l
...
# Xibo
0-59/5 * * * * /usr/bin/php /var/www/slackbox-xibo/bin/xtr.php

 

 

Ce contenu a été publié dans CentOS, Documentation Microlinux, avec comme mot(s)-clé(s) , , . Vous pouvez le mettre en favoris avec ce permalien.

Une réponse à Hébergement Xibo sous CentOS

  1. Ping : Hébergement Xibo sous CentOS - My Tiny Tools

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *