Instalación de Prontus CMS

Este artículo describe todo el proceso de instalación de Prontus en un servidor web, así como los requisitos previos a la instalación. Te sugerimos leer con atención todo este artículo antes de comenzar a instalar Prontus CMS.

Publicado: Viernes 29 de noviembre de 2019 por Adriano Varoli Piazza
Última modificación: Miércoles 10 de marzo de 2021

Esta serie de artículos detalla la instalación y configuración del CMS Prontus sobre un sistema operativo Linux, usando Nginx como webserver, con soporte para los lenguajes de scripting Perl y PHP, con el paquete fcgiwrap instalado, y MySQL o MariaDB como servidor de base de datos. Para el procesamiento de videos, Prontus usa el paquete ffmpeg, que debe instalarse con soporte para formatos AAC y x264.

Se espera que la persona encargada de la instalación de Prontus tenga conocimientos de administración de sistemas suficientes para instalar paquetes de software y modificar archivos de configuración. La instalación del CMS Prontus requiere acceso como superusuario (con cuenta de usuario root o con acceso mediante sudo) en el sistema operativo en que instales. Aunque típicamente utilizamos sistemas operativos Debian para nuestras implementaciones, no deberías tener problemas con ningún sistema operativo Linux siempre que se cumplan los requisitos de instalación.

Obtención del paquete CMS Prontus

Puedes descargar el paquete para instalar el CMS Prontus desde la página de descargas en prontus.cl. Tras descargar el paquete .tar.gz, puedes descomprimirlo en el servidor en que instalarás Prontus en el directorio /var/www/html u otro que vayas a usar, como por ejemplo /var/www/mi.sitio.cl/web/.

Configuraciones preliminares

A modo indicativo, este es el listado de paquetes que deben estar instalados en un sistema operativo Debian para que Prontus funcione correctamente:

  • mariadb-server
  • nginx-common nginx-extras (o nginx-full)
  • sendmail
  • fcgiwrap
  • perl
  • perl-base
  • perl-modules
  • libcpanel-json-xs-perl
  • libjson-xs-perl
  • libjson-perl
  • liblockfile-simple-perl
  • libxml-libxml-simple-perl
  • libhttp-response-encoding-perl
  • libgd-perl
  • libnet-dns-perl
  • libcrypt-eksblowfish-perl
  • libclass-dbi-perl
  • libdbd-mysql-perl
  • libio-all-perl
  • libfile-libmagic-perl
  • libemail-mime-perl
  • libemail-sender-perl
  • libemail-simple-perl
  • liburi-perl
  • libwww-perl
  • liblwp-protocol-https-perl
  • liblwp-mediatypes-perl
  • libmime-tools-perl
  • libnet-amazon-s3-perl
  • libimage-exiftool-perl
  • libcrypt-jwt-perl
  • perl-openssl-defaults
  • php (la versión que necesites, por ejemplo para PHP v5):
  • php5-fpm
  • php5-curl
  • php5-mysql
  • php5-enchant
  • aspell
  • libaspell15
  • aspell-en (y demás lenguajes que necesites en tu sitio, como aspell-es)
  • enchant
  • libenchant1c2a
  • libhunspell-1.3-0
  • hunspell-en-us (y demás lenguajes que necesites en tu sitio, como hunspell-es-cl)
  • ffmpeg
  • libavcodec-extra57

Configuración del webserver

Asumiendo que ya tienes un servidor web Nginx instalado correctamente, para que el CMS Prontus funcione debes adaptar tu configuración particular según los archivos que proporcionamos en el paquete configuracion_nginx.zip adjunto a este artículo. No deberías pisar tu configuración con estos archivos, sino más bien adaptarla a tu caso particular. La ubicación de los archivos de configuración en el paquete .zip es relativa al directorio /etc/nginx.

El archivo adjunto contiene los siguientes archivos:

  • sites_available/prontus_ejemplo configuración específica de Nginx para el Prontus que instalaremos. En este archivo se cargan las configuraciones contenidas en el subdirectorio global/ , como cgi.conf, prontus.conf o restrictions.conf.
    Nota la configuración:
    set $tamanio_maximo_upload "2G";
    client_max_body_size 2G;
    Los valores en esas dos líneas deben ser iguales. La variable $tamanio_maximo_upload se usa en algunas CGIs Prontus y en global/cgi.conf.
    Este archivo también incluye la configuración necesaria para tags jerárquicos.
  • global/cgi.conf: configuración para que Nginx procese los scripts CGI de Prontus correctamente.
  • global/mobiles.conf: configuraciones para presentar vistas correctas a clientes móviles, si corresponde.
  • global/php.conf: configuraciones para el correcto funcionamiento de los scripts PHP usados por Prontus.
    La directiva fastcgi_pass depende de la versión de PHP instalada, por ejemplo podría ser
    fastcgi_pass unix:/var/run/php7.2-fpm.sock; o
    fastcgi_pass unix:/var/run/php7.0-fpm.sock;
  • global/prontus.conf: configuraciones específicas de Prontus: rewrites y protección de directorios y archivos.
  • global/restrictions.conf: otros directorios y archivos restringidos

Un punto en particular es que debes instalar el paquete fcgiwrap para que Nginx pueda ejecutar los scripts CGI.

Una vez hayas terminado de configurar, recuerda crear el enlace simbólico desde /etc/nginx/sites-available/[tu sitio prontus] a /etc/nginx/sites-enabled/[tu sitio prontus]. Por ejemplo:

ln -s /etc/nginx/sites-available/prontus_ejemplo /etc/nginx/sites-enabled/prontus_ejemplo

Luego de esto deberás recargar la configuración del webserver para que el cambio sea efectivo.

Configuración del lenguaje de scripting Perl

Asumiendo que los paquetes necesarios (listados más adelante en la sección "Requerimientos") están instalados correctamente, la instalación del CMS Prontus no necesita configuraciones adicionales del lenguaje Perl.

Configuración del lenguaje de scripting PHP

Asumiendo que los paquetes necesarios (listados más adelante en la sección "Requerimientos") están instalados correctamente, la instalación del CMS Prontus no necesita configuraciones adicionales del lenguaje PHP, excepto el siguiente caso: si estás usando PHP en una versión mayor a 5.3.8 y necesitas que las páginas con extensión .html sean procesadas como scripts PHP, debes modificar el archivo php-fpm.conf agregando esta directiva:

security.limit_extensions = .php .html .js

Configuración del servidor de base de datos

Prontus no requiere configuraciones específicas al servidor de base de datos, pero si lo deseas puedes crear en este momento la base de datos que usará Prontus y asignar los permisos necesarios, por ejemplo de este modo:

vagrant@jessie:/var/www/prontus_next$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9072
Server version: 5.6.40 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database prontus_ejemplo;
Query OK, 1 row affected (0.01 sec) mysql> grant all privileges on prontus_ejemplo.* to "usuario"@"localhost" identified by "clave";
Query OK, 0 rows affected (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) mysql>

Registra el nombre de base de datos, el usuario y la clave para ingresarlos durante la instalación.

Si prefieres no crear la base de datos ahora, el asistente de instalación de Prontus puede hacerlo durante el proceso de instalación. En ese caso deberás ingresar el usuario y clave que tengan permisos de creación de bases de datos y usuarios.

Requerimientos

Una vez hayas descomprimidos los archivos y configurado el webserver, puedes revisar la lista de paquetes necesarios para que Prontus funcione yendo al directorio webroot de Prontus y ejecutando en la terminal el comando
perl cgi-cpn/prontus_check_platform.cgi

Esto debería devolverte la lista actualizada de programas y librerías necesarios con sus versiones, y cuáles están ya instalados. Por ejemplo, este es el resultado de ejecutar ese comando en un ambiente de pruebas:

vagrant@jessie:/var/www/prontus_next$ perl cgi-cpn/prontus_check_platform.cgi
Prontus - Verificación de Software

Software requerido por Prontus

Sistema Operativo: LINUX.
Lenguaje Perl: versión 5.28.1 - OK. 
Descompresor unzip: OK (se encontró versión 6.00)

Módulos Perl requeridos por Prontus
                         DBI (v1.50)      OK, se encontró versión 1.642
                  DBD::mysql (v3.0002)    OK, se encontró versión 4.050
                          GD (v2.30)      OK, se encontró versión 2.71
            GD - soporte gif (libungif)    OK
           GD - soporte jpeg (jpeg)        OK
            GD - soporte png (libpng)      OK
                        JSON (v2.14)      OK, se encontró versión 4.02
            LockFile::Simple (v0.205)     OK, se encontró versión 0.208
               Email::Simple (v2.203)     OK, se encontró versión 2.216
                 Email::MIME (v1.926)     OK, se encontró versión 1.946
               Email::Sender (v1.300016)  OK, se encontró versión 1.300031
                     IO::All (v0.79)      OK, se encontró versión 0.87
              File::LibMagic (v1.02)      OK, se encontró versión 1.16
                   Try::Tiny (v0.22)      OK, se encontró versión 0.30
                 XML::Parser (v2.34)      OK, se encontró versión 2.44
      HTTP::Response(libwww) (v1.53)      OK, se encontró versión 6.18
      LWP::UserAgent(libwww) (v2.033)     OK, se encontró versión 6.36
        LWP::Protocol::https (v6.06)      OK, se encontró versión 6.07
                    Net::DNS (v0.65)      OK, se encontró versión 1.19
                 URI::Escape (v3.20)      OK, se encontró versión 3.31
  Crypt::Eksblowfish::Bcrypt (v0.009)     OK, se encontró versión 0.009
                MIME::Base64 (v3.15)      OK, se encontró versión 3.15
                  Crypt::JWT (v0.023)     OK, se encontró versión 0.023
                 Digest::SHA (v5.60)      OK, se encontró versión 6.01
                MIME::Parser (v5)         OK, se encontró versión 5.509
             Image::ExifTool (v9)         OK, se encontró versión 11.16
             Net::Amazon::S3 (v0.85)      OK, se encontró versión 0.85

Soporte para transcodificación:
Revisando las capacidades de /usr/bin/ffmpeg

                      FFmpeg (2.1.0)       - OK (se encontró 3.1.2)
  FFmpeg con soporte libx264              OK
       FFmpeg con soporte aac              OK
FFmpeg con soporte libfdk_aac             OK
FFmpeg con soporte libmp3lame             OK

Revisando las capacidades de /bin/ffmpeg
FFmpeg (2.1.0) - OK (se encontró 3.1.2) FFmpeg con soporte libx264 OK FFmpeg con soporte aac OK FFmpeg con soporte libfdk_aac OK FFmpeg con soporte libmp3lame OK La verificación básica dio éxito. Importante: Es posible que la transcodificación falle, aún cuando todos estos requisitos se cumplan. Para mayor información y ayuda frente a errores, visitar /prontus_desarrollo_v12_0 , sección "Instalación", sub-sección "Soporte para transcodificación" ==== FIN ==== vagrant@jessie:/var/www/prontus_next$

Una vez hayas verificado que el ambiente de instalación cumple los requerimientos básicos, puedes comenzar la instalación de Prontus visitando la URL del asistente de instalación, que normalmente será

[tu dominio]/wizard_prontus

Si no hay problemas deberías ver la página con el primer paso de la instalación.

Instalación - Inicio

En esta página puedes revisar nuevamente los requisitos de instalación para ver si Prontus CMS funcionará luego de instalarlo.

Si tu ambiente de instalación cumple con todos los requisitos, puedes continuar al siguiente paso.

Instalación - Paso 1

En esta página deberás ingresar los datos básicos del sitio Prontus a generar:

  • Identificador y nombre. El identificador aparecerá en muchas de las URL del sitio, dependiendo de la configuración de URLs amigables; el nombre aparecerá en algunas etiquetas HTML.
  • Configuración de base de datos. Aquí debes ingresar el nombre de una base de datos existente, la dirección del servidor de bases de datos y el usuario y contraseñas con permisos para crear tablas en esa base de datos. Como alternativa, puedes hacer que el asistente de instalación del CMS Prontus cree la base de datos en este paso si haces click en el enlace "Para mostrar la opción haz click aquí" en la sección "Cuenta para creación de base de datos (optativo)", ingresando un usuario y clave con permisos de creación de bases de datos y de modificación de permisos de usuarios.
  • Servidor para envío de correo (SMTP). Típicamente "localhost", aquí puedes ingresar la dirección IP o dominio del servidor de correos que desees usar para que Prontus pueda enviar correos automáticamente, por ejemplo cuando un usuario necesita recuperar su contraseña, o cuando se rellena un formulario de contacto con envío de datos a un administrador del sitio.

Instalación - Paso 2: Modelos

En este paso, el asistente de instalación del CMS Prontus te solicita elegir un modelo que servirá como base para las plantillas del sitio.

Por defecto, Prontus incluye algunos modelos básicos, pero si haces click en el botón "Descargar Modelos" podrás elegir entre algunos otros el que te sirva más.

Instalación - Paso 3

En este paso se te mostrarán todas las configuraciones ingresadas hasta el momento, para que puedas confirmar antes de instalar tu nuevo sitio. Al pulsar el botón "Finalizar la instalación" Prontus procesará la configuración y creará todos los archivos del nuevo sitio. De presentarse cualquier error, aparecerá el mensaje relevante en la vista siguiente.

Instalación - Final

Si no ocurrieron errores, Prontus te presentará la vista final del asistente de instalación, confirmando que todo se instaló correctamente y mostrándote los enlaces a las páginas principales del sitio público y del panel de administración, así como las credenciales iniciales para acceder a este último.