Tutorial de instalación de Flarum en un servidor VPS

En Tutoriales y Guías por

En este tutorial vamos a partir de un servidor Linux con Ubuntu 20.04 LTS limpio y vamos a instalar un entorno LAMP compatible con el sistema de foros Flarum. No entraremos en detalles avanzados de la configuración del servidor LAMP, porque sino el tutorial sería interminable.

instalación de Flarum en un servidor VPS

Hace ya tiempo que dedicamos un artículo a Flarum, pero refrescando la memoria, podemos describir a Flarum como un sistema de foros moderno que usa la tecnología SPA (single-page-application). Esto consiste en una aplicación web de una página única que reescribe su contenido dinámicamente en lugar de recargar todo (página y contenido). Este sistema de foros es de código abierto, además usa tecnologías tan reconocidas como PHP y MySQL.

En el momento de escribir este tutorial, Flarum está muy cerca de salir de la fase beta, se prevé que en menos de un mes tengamos la primera versión estable disponible. Es por este motivo, que os animo a probarlo y a darle una oportunidad a este sistema de foros, que además usamos en los propios foros de Vozidea.

Crear un servidor con Ubuntu 20.04 en nuestro proveedor de VPS para Flarum.

Nosotros hemos elegido Clouding.io para este tutorial por su facilidad de uso a la hora de crear nuevos servidores VPS y por su buena relación calidad-precio. Además, son servidores ubicados en España con buen soporte en español. A pesar de esto, este tutorial es válido para cualquier otro proveedor de servidores siempre que el sistema operativo elegido sea Ubuntu 20.04.

Para crear un servidor nuevo en Clouding es tan sencillo como acceder con los datos de nuestra cuenta y seguir el proceso que se nos muestra en pantalla:

  • Debemos escribir un nombre, por ejemplo, «flarum-server».
  • En sistema operativo seleccionamos Ubuntu 20.04.
  • En cuanto a los recursos del servidor deberéis configurarlos en función del tamaño y número de visitas de vuestro foro. Yo para este tutorial voy a usar las opciones por defecto (2GB RAM, 0.5 vCore y 5GB SSD), que a su vez son suficientes para foros nuevos sin mucho tráfico.
  • Seleccionar la llave SSH y la configuración de Firewall.
  • Pulsamos el botón «Enviar» y esperamos a que se configure nuestro nuevo servidor (tarda un rarito, paciencia).

Paso inicial para configurar un entorno LAMP en nuestro servidor VPS.

Nos conectaremos a la consola de nuestro servidor empleando SSH, por ejemplo, yo lo hago desde Windows 10 usando PuTTY. Para esto, basta cono conocer la IP de nuestro servidor y las credenciales de acceso (podemos consultar todos estos datos en el panel de administración del servidor de Clouding).

acceder a servidor clouding

Como ya es habitual en todo tutorial de servidores Ubuntu, el primer comando a ejecutar es:
sudo apt update -y && sudo apt upgrade -y

Una vez finalice el proceso de actualización, recomiendo reiniciar el servidor con el comando:
shutdown -r now

Instalar servidor Apache.

Ya estamos listos para instalar nuestro entorno LAMP, comenzamos por instalar el servidor Apache:
sudo apt install apache2

Activamos los módulos de Apache necesarios para que todo funcione correctamente:
a2enmod rewrite expires headers ext_filter
systemctl restart apache2

Instalar servidor MySQL o MariaDB.

Ahora procedemos a instalar MySQL, yo opto siempre por instalar MariaDB que es un reemplazo a MySQL de código abierto y con un desarrollo muy activo. Para la instalación de MariaDB lo mejor es seguir las instrucciones de la propia página oficial a través de este enlace.

Los pasos resumidos son los siguientes:
sudo apt-get install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://ams2.mirrors.digitalocean.com/mariadb/repo/10.5/ubuntu focal main'
sudo apt update
sudo apt install mariadb-server

Para la configuración de seguridad básica de MariaDB es muy recomendable ejecutar el comando mysql_secure_installation tras la instalación de MariaDB.

Instalar PHP.

Para instalar PHP existen múltiples opciones, pero a mi me gusta instalar PHP-FPM por su rapidez y mejoras frente al módulo estándar mod_php. No vamos a entrar en comparativas entre ambas opciones, pero lo cierto es cualquiera de las dos opciones nos serviría y al final yo elijo PHP-FPM simplemente porque es mi preferencia personal.

Al mismo tiempo que instalo PHP-FPM, también instalaré varios módulos PHP necesarios para poder ejecutar Flarum en nuestro servidor, por lo que el comando a ejecutar sería el siguiente:
sudo apt install php-fpm php-mbstring php-gd php-mysql php-zip php-xml php-curl php-json php-tokenizer

tras la instalación de PHP-FPM tendremos que ejecutar los siguientes comandos para habilitarlo:
a2enmod proxy_fcgi setenvif
a2enconf php7.4-fpm
systemctl restart apache2

Llegados a este momento, es hora de probar que nuestro servidor esta funcionando correctamente. Para esto, ejecutamos los siguientes comandos:
sudo nano /var/www/html/phpinfo.php

Escribo el siguiente texto <?php phpinfo(); ?> y uso la combinación «Ctrl+o» para guardar los cambios con el editor nano. Para salir pulso la combinación «Ctrl+x».

Ahora basta con visitar a través de nuestro navegador la dirección web http://ip-del-servidor/phpinfo.php y si todo ha ido bien veremos toda la información de nuestro servidor en pantalla.

Probar apache y php con phpinfo

Como instalar Flarum.

Para mantener la sencillez del tutorial vamos a instalar Flarum en la carpeta /var/www/html/foro de tal forma que para acceder a Flarum desde el navegador emplearemos la dirección http://ip-del-servidor/foro/.

Para ello, vamos a comenzar por crear la estructura de directorios necesaria con los archivos de Flarum. Los comandos a ejecutar son:
cd /var/www
mkdir foro
wget https://getcomposer.org/download/2.0.14/composer.phar
php composer.phar create-project flarum/flarum ./foro --stability=beta
chown -R www-data:www-data /var/www/foro

A continuación, necesitamos relizar una pequeña configuración en el Virtualhost por defecto de Apache, para que la ruta /var/www/foro/public se corresponda con la URL http://ip-del-servidor/foro/. Esto lo conseguimos editando el archivo «000-default.conf» con el siguiente comando:
nano /etc/apache2/sites-available/000-default.conf

Añadimos las siguientes líneas al archivo de configuración («Ctrl+o» para guardar los cambios y «Ctrl+x» para salir):

Alias /foro /var/www/foro/public

<Directory "/var/www/foro/public">
    AllowOverride All
</Directory>
configurar vhost flarum

Reiniciamos el servidor Apache:
systemctl restart apache2

Creamos la base de datos ejecutando los siguientes comandos:
mysql
CREATE USER 'foro'@'localhost' IDENTIFIED BY 'PPQQgh824';
CREATE DATABASE flarum;
GRANT ALL PRIVILEGES ON flarum.* TO 'foro'@'localhost';
FLUSH PRIVILEGES;
exit;

Ejecutando los comandos anteriores tendremos una base de datos de nombre «flarum» y un usuario «foro» cuya contraseña es «PPQQgh824», por lo que ya tenemos todo lo necesario para lanzar el instalador web de Flarum accediendo a la URL http://ip-del-servidor/foro/

instalador web de Flarum

Completamos todos los campos con los datos de nuestra base de datos, datos del usuario administrador y nombre del foro. Cuando esté todo completado pulsamos el botón «Install Flarum» y tras una corta espera deberiamos ser redirigidos anuestro nuevo foro Flarum listo para usar.

Conclusiones.

Vemos que a lo largo de este artículo montar nuestro propio servidor LAMP es algo relativamente sencillo. Además, gestionar los servidores Clouding es algo muy intuitivo, ya que ofrecen una interfaz de usuario amigable, con la que podemos crear servidores VPS deforma sencilla, rápida y con los recursos adaptados a nuestras necesidades.

A su vez, el sistema de foros Flarum es un software complejo pero fácil de gestionar por el usuario. Creo que este tutorial demuestra que cualquiera con conocimientos básicos de Linux puede poner en marcha su propio proyecto de comunidad online.