En este tutorial te enseño cómo instalar Xibo en Ubuntu Server 20.04 usando LAMP como pila web y aplicando TLS usando esta configuración. Xibo es un sistema que utilizo a menudo en colegios y oficinas.
Yo he instalado Xibo usando el laboratorio de maquinas virtuales que describo en el libro “Como ser ingenios@ de Sistemas” que puedes conseguir apuntándote a mi newsletter, pero he descrito el manual con nombre de dominio para que puedas hacer una implementación real y auto alojar Xibo en tu VPS, que puedes contratar en CONTABO.
He completado esto usando los certificados autofirmados autogenerados para TLS (no confiables). Tendrás que seguir otra guía para crear certificados con firma pública.
Recomiendo usar Let’s Encrypt con su certbot.
Notas
- Las versiones de MariaDB y PHP instaladas aquí no son soportadas oficialmente por Xibo.
- La ubicación de la biblioteca es /var/www/Library debido a que el instalador escribe el archivo de registro de la instalación en /var/www/library. El instalador requiere que el directorio de la biblioteca esté vacío.
- Una instalación local de QuickChart no está cubierta en esta guía pero se recomienda.
Requisitos de instalación
Todos los requisitos se pueden instalar con apt.
sudo apt install mariadb-server mariadb-client apache2 php php-cli php-gd php-json php-dom php-mysql php-zip php-soap php-curl php-xml php-mbstring php-zmq libapache2-mod-xsendfile
Cómo instalar Xibo en Ubuntu
Cuando estoy configurando el software del servidor fuera de un gestor de paquetes siempre lo coloco bajo la carpeta /srv. Voy a instalar Xibo en /srv/xibo-cms.
sudo mkdir /srv/xibo-cms
cd /srv/xibo-cms
sudo wget https://github.com/xibosignage/xibo-cms/releases/download/3.0.2/xibo-cms-3.0.2.tar.gz
Esto extrae el contenido del archivo sin crear una carpeta
sudo tar -xvzf xibo-cms-3.0.2.tar.gz --strip-components=1
El usuario de apache2 ‘www-data’ debe ser establecido como propietario de todos los elementos extraídos.
sudo chown -R www-data:www-data /srv/xibo-cms
Esto elimina el directorio /var/www existente y crea un enlace simbólico a /srv/xibo-cms.
sudo rm -r /var/www
sudo ln -s /srv/xibo-cms /var/www
Configurar Apache2
Esto habilita los módulos necesarios de apache2 y crea una configuración del sitio usando vim.
sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2enmod session
sudo nano /etc/apache2/sites-available/xibo-cms.conf
fichero de configuración xibo-cms.conf
<VirtualHost *:80> DocumentRoot "/var/www/web" ServerName xibo.domain.com XSendFile on XSendFilePath /var/www/Library <Directory "/var/www/web"> AllowOverride All Options Indexes FollowSymLinks MultiViews Order allow,deny Allow from all Require all granted </Directory> </VirtualHost> <VirtualHost *:443> DocumentRoot "/var/www/web" ServerName xibo.domain.com XSendFile on XSendFilePath /var/www/Library SSLEngine on SSLCertificateFile "/etc/ssl/certs/ssl-cert-snakeoil.pem" SSLCertificateKeyFile "/etc/ssl/private/ssl-cert-snakeoil.key" <Directory "/var/www/web"> AllowOverride All Options Indexes FollowSymLinks MultiViews Order allow,deny Allow from all Require all granted </Directory> </VirtualHost>
Esto desactiva el sitio por defecto
sudo a2dissite 000-default.conf
Este comando activa la configuración del sitio xibo-cms recién creado.
sudo a2ensite xibo-cms.conf
Configure MariaDB
Esto configura una contraseña de usuario root para MariaDB. Asegúrese de cambiar MI_NUEVA_CONTRASEÑA por la contraseña que desee.
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MI_NUEVA_CONTRASEÑA';
FLUSH PRIVILEGES;
exit;
Configurar PHP
Es necesario modificar la configuración de PHP para permitir la carga de archivos más grandes.
sudo nano /etc/php/7.4/apache2/php.ini
Modifica las siguientes líneas como se muestra
max_execution_time = 300 memory_limit = 256M post_max_size = 2G upload_max_filesize = 2G session.cookie_secure = Off session.cookie_httponly = On session.cookie_samesite = Lax
Configurar el XMR
Crear archivo de configuración XMR
sudo nano /srv/xibo-cms/vendor/xibosignage/xibo-xmr/bin/config.json
Introduce la siguiente información y cambia la dirección IP de pubOn por la IP pública del servidor. Puedes ver esto ejecutando el comando “ip a”
{
"listenOn": "tcp://127.0.0.1:50001",
"pubOn": ["tcp://192.168.1.1:9505"],
"debug": false
}
Establece www-data como propietario del archivo.
sudo chown www-data:www-data /srv/xibo-cms/vendor/xibosignage/xibo-xmr/bin/config.json
Crear el servicio XMR
sudo nano /etc/systemd/system/xibo-xmr.service
Introduce lo siguiente.
[Unit] Description=Xibo XMR After=network.target [Service] User=www-data Group=www-data ExecStart=/usr/bin/php /srv/xibo-cms/vendor/bin/xmr.phar Restart=always KillMode=process RestartSec=1 [Install] WantedBy=multi-user.target
Iniciar el servicio
sudo systemctl daemon-reload
sudo systemctl enable xibo-xmr.service
sudo systemctl start xibo-xmr.service
Comprueba el estado del servicio xibo-xmr para confirmar que está funcionando.
sudo systemctl status xibo-xmr.service
Configurar XTR en el cron
sudo crontab -u www-data -e
Selecciona el editor que prefieras y luego introduce la siguiente línea.
* * * * * /usr/bin/php /var/www/bin/xtr.php
Configurar el cortafuegos
Habilitar el puerto 22 para conexiones ssh
sudo ufw allow ssh
Habilitar puerto 443 para https
sudo ufw allow https
Habilitar el puerto 9505 para XTR
sudo ufw allow 9505/tcp
Habilitar el firewall de Ubuntu
sudo ufw enable
Reiniciar el servicio apache
sudo systemctl restart apache2
Ahora puedes navegar al servidor en la ubicación que configuraste en el xibo-cms.conf
Si todo ha ido bien veras la lista de comprobaciones que Xibo realiza antes de hacer la instalación, lo normal es que estén todas marcadas como correctas, salvo la de “Carga de archivos grandes”.
Si vas a usar Xibo con video, 2 GB no es suficientemente grande para los videos, revisa la configuración del fichero /etc/php/7.4/apache2/php.ini y aumenta los valores de las variables post_max_size y upload_max_filesize
Si todo esta bien puedes desplazarte hasta la parte inferior de la pagina y pulsar “Next” para continuar con la instalación y aparecera la pagina de configuración de la base de datos
Rellenas la información y acuerdate de marcar la opción “Create a new database” para que Xibo cree la base de datos nueva en tu MariaDB.
Si tuvieras ya una base de datos creada configura los datos en la pestaña adyacente.
Xibo creara la base de datos y te pedira un nombre y una contraseña de usuario para el usuario Administrador del CMS
Pulsando Siguente, vas a la pagian donde le dices la ruta en la que va a estar la librería de contenido de Xibo que estará en /var/www/Library y también el numero de licencia de este servidor, que se utilizará para dar de alta los reproductores.
Escribe /var/www/Library en la ruta de la librería y puedes dejar la licencia como la que te propone la propia instalación. La opción de estadísticas enviara información a Xibo de tu sistema para fines estadísticos, desmárcalo si no quieres enviar información
Aparecerá entonces el formulario para acceder al CMS, escribe el nomrbe de usuario y contraseña del Administrador
Y despues accedes al panel de control del CMS
Actualización de nuevas versiones
Copia de seguridad
Lo más sencillo es parar apache2 y el servicio xibo-xmr, moviendo el directorio /srv/xibo-cms
sudo systemctl stop apache2 xibo-xmr
y hacer una copia de seguridad de la base de datos.
sudo mv /srv/xibo-cms /srv/xibo-cms.backup
Sustituye la palabra en azul “usuario” por el nombre de usuario no-root que estes utilizando
sudo mysqldump -u root -p xibo > /home/usuario/xibo-cms.sql
Crea el directorio xibo-cms y cambia a él. Descarga la nueva versión, en este ejemplo 3.0.2 extráela y copia los archivos necesarios. También tendrás que borrar el archivo install/index.php para que no aparezca una advertencia.
Instalación
sudo mkdir /srv/xibo-cms
cd /srv/xibo-cms
sudo wget https://github.com/xibosignage/xibo-cms/releases/download/3.0.8/xibo-cms-3.0.8.tar.gz
sudo tar -xvzf xibo-cms-3.0.8.tar.gz --strip-components=1
sudo cp /srv/xibo-cms.backup/web/settings.php web/
sudo cp -r /srv/xibo-cms.backup/Library .
sudo cp /srv/xibo-cms.backup/vendor/xibosignage/xibo-xmr/bin/config.json vendor/xibosignage/xibo-xmr/bin/
sudo chown -R www-data:www-data /srv/xibo-cms
sudo rm web/install/index.php
Si actualizas entre versiones, es decir, de la 2.x.x a la 3.x.x, tendrás que actualizar la base de datos con este comando que debe ejecutarse desde el directorio /srv/xibo-cms.
vendor/bin/phinx migrate -c phinx.php
Vuelve a poner en marcha los servicios.
sudo systemctl start apache2 xibo-xmr
Después de haber iniciado la sesión, es posible que no veas ningún diseño. Pulsa Shift+F5 para borrar la caché de tu navegador y vuelve a cargar la página. En la parte inferior izquierda esta la opcion de “Acerca” para comprobar tu version
Comprueba que se ha actualizado
Ahora ya solo te falta instalar un player en tu ordenador, suponiendo que tengas un ordenador Windows, puedes descargarte el player (es gratuito) y puedes descargarlo aquí
Una vez descargado instala el Xibo Player como cualquier otra aplicación de windows, Acepta los terminos de la licencia en el instalador y cuando conluya la instalación deja marcado ejecutar el reproductor y pulsa “Finish”
Al ejecutarse el Player aparece la ventana de configuración
Le damos al boton de conectar y despues de unos segundos nos aparece la información de que hemos podido conectar al servidor
Después vamos al panel de control del CMS y en el apartado Pantallas tenemos el nuevo reproductor que hemos dado de alta
Este es el comienzo de tu red de pantallas, ya sabes cómo instalar Xibo en Ubuntu, ya tienes tu sistema de cartelería digital instalado, ahora te dejo jugar con el sistema, puedes encontrar documentación de Xibo en su pagina web y en los foros de la comunidad de código abierto.
¡Que tengas un Ingenioso día!
¡que tengas un ingenioso día!
Contrata tu plan Ingenios@ de Sistemas por 5€ al mes y responderé a todas tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract, Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución 4.0
Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s de Sistemas, un episodio diario que te mantendrá informado y formado en esta vertiginosa carrera.