Cómo instalar BoltWire CMS con Nginx en Ubuntu 20.04 LTS

Bolt es un sistema ligero de gestión de contenidos (CMS) construido sobre el popular framework PHP. Bolt es perfecto para una pequeña empresa que quiera mantener su propio sitio web sin preocuparse de tener que aprender HTML y otros lenguajes de programación. Bolt incluye funciones avanzadas como sólidas marcas wiki, comercio electrónico, una galería de fotos y un creador de álbumes, una galería y un reproductor de audio, y libros de visitas.

Boltwire destaca por ser completamente gratuito para particulares y grupos de todos los tamaños que necesiten un CMS. Joe Casabona es el creador de Boltwire y comparte su pasión ayudando a otros a sacar el máximo partido de su proyecto de código abierto. Bolt se utiliza en más de 200 países para gestionar más de 500.000 sitios web. Sus desarrolladores son voluntarios y esperan que todos los usuarios participen en el proyecto ofreciendo sus comentarios y contribuyendo a su desarrollo.

Bolt tiene algunas características únicas:

  • Generación dinámica de páginas: Se puede montar una página basándose en los datos encontrados al obtenerlos de la base de datos. Por ejemplo, cuando un usuario publica una nueva entrada en un diario online, se pueden añadir dinámicamente otras entradas de su blog sin tener que actualizar toda la página web. Esto permite tiempos de carga más rápidos, especialmente con grandes cantidades de páginas o elementos multimedia por categoría (por ejemplo, todas las fotos de una galería de fotos).
  • Gestión y administración de contenidos: Varios usuarios pueden gestionar el contenido, para garantizar que cada usuario sólo pueda cambiar determinadas partes de las páginas. También se les puede restringir lo que pueden ver o editar. Por ejemplo, a la mayoría de la gente no se le permite publicar nuevos artículos o añadir comentarios libremente; esto está reservado a los administradores del sitio. Los lectores pueden seguir viendo cualquier artículo sin tener que iniciar sesión primero, a menos que el administrador especifique lo contrario.
  • Facilidad de uso: Bolt reduce enormemente el esfuerzo necesario para crear páginas web en comparación con otros CMS como Joomla y Drupal. Los asistentes integrados en Bolt automatizan gran parte de su proceso de configuración para que no tengas que preocuparte de cómo funcionan las cosas bajo el capó.
  • Fácil extensibilidad: Como Bolt es de código abierto, es fácil crear nuevos módulos que amplíen o añadan funciones a Bolt. Las nuevas funciones suelen integrarse en el núcleo del software, lo que facilita aún más su uso. Con unas 40 extensiones disponibles actualmente en Modboom, puedes ampliar fácilmente cualquier parte de Bolt que desees sin tener que aventurarte demasiado en la programación PHP.
  • BoltWire está disponible en varios idiomas: Inglés (por defecto), alemán, italiano, japonés, polaco, portugués y español. Además de los paquetes estándar de BoltWire para los idiomas mencionados, también está disponible una localización completa en francés (100%) y holandés (más del 50%).

La desventaja es que hay poco soporte disponible, aparte de los foros de ayuda, si tienes alguna pregunta sobre cómo funcionan las cosas bajo el capó en tu idioma local. En este sentido, es tu responsabilidad hacer que las cosas funcionen como te gustaría. Sin embargo, si te sientes cómodo utilizando un editor de texto y tienes tiempo para trabajar tú mismo en Bolt, entonces no hay nada que te impida crear un sitio web sencillo pero de aspecto profesional en cuestión de minutos.

En esta guía, aprenderemos a instalar BoltWire en un servidor Ubuntu 20.04.

Requisitos previos

  • Un servidor nuevo con Ubuntu 20.04.
  • Acceso root SSH completo o usuario con privilegios sudo.
  • Un nombre de dominio registrado y apuntando a tu servidor.

Cómo empezar

En primer lugar, inicia sesión en tu Ubuntu con SSH.

ssh root@dirección_IP -p Número_de_puerto

root es el usuario por defecto en Ubuntu, sustituye ‘root’ por el nombre de tu propio usuario, si utilizas otro.

Dirección_IP es la dirección de tu servidor. Puedes comprobarlo utilizando

hostname -I en la línea de comandos. Número_de_puerto debe ser 22 para SSH.

hostname -I

el ‘-p’ indica a ssh que utilice el puerto especificado. Si no especificas un número de puerto, se utilizará el 22 .

Si estás detrás de un cortafuegos, puede que el puerto 22 esté bloqueado. En ese caso, cambia Número_de_puerto por otro como 2222.

Actualizar tu sistema

Puedes comprobar si tu sistema tiene instalada la versión adecuada de Ubuntu con el siguiente comando:

sudo lsb_release -a

Ejemplo de salida:

Comprueba la versión de Ubuntu

Siempre es aconsejable actualizar el sistema antes de instalar paquetes.

sudo apt-get update && apt-get upgrade -y

-y es un comando que responderá automáticamente «Sí» a todas las preguntas durante el proceso de actualización. apt-get update actualiza las listas de paquetes, y apt-get upgrade actualiza tu sistema.

Ejemplo de salida:

Actualizar paquetes

La actualización puede tardar algún tiempo dependiendo de cuántos paquetes haya que descargar e instalar. Una vez completada la actualización, se te pedirá que reinicies tu servidor. Ejecuta el siguiente comando para reiniciar tu sistema tras las actualizaciones:

sudo reboot

Instalación de los paquetes necesarios

La instalación de Bolt requiere la instalación de una serie de paquetes en tu sistema. Algunos de los paquetes se instalan en un orden concreto. En este caso, instalaremos todos los paquetes necesarios para la instalación de Bolt con el comando siguiente:

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https

socat es para el proxy, que hace que Bolt parezca estar ejecutándose en el servidor web.

apt-transport-https permite que las operaciones de línea de comandos como sudo apt update funcionen con conexiones https. bash-completion es un programa para que bash autocomplete los comandos tras escribir los primeros caracteres.

curl se utiliza para descargar paquetes y wget para descargar archivos como la última versión de Bolt desde su sitio web.

Ejemplo de salida:

Instalar requisitos previos

Instalación de Nginx

Nginx se utiliza como proxy inverso para gestionar tus sitios web en Bolt. Nginx es ligero, fácil de configurar y rápido. Ejecuta el siguiente comando para instalar Nginx

sudo apt-get install nginx

Escribe ‘y’ si se te pide, el proceso de instalación se iniciará automáticamente.

Ejemplo de salida:

Instalar Nginx

Una vez completada la instalación, inicia el servicio nginx y habilítalo para que se ejecute al iniciar el sistema

sudo systemctl start nginx
sudo systemctl enable nginx

Para comprobar y verificar si Nginx se está ejecutando actualmente o no, utiliza este comando en el terminal.

sudo systemctl status nginx

Ejemplo de salida:

Nginx se está ejecutando

Configuración de Nginx

BoltWire CMS está instalado en el directorio /var/www/. Para acceder y probar BoltWire CMS, tenemos que configurar el bloque del servidor Nginx para que dirija las peticiones a la ruta de la carpeta webroot /var/www/automáticamente para todas las peticiones de contenido estático, así como para las peticiones de archivos de módulos y plugins.

Ejecuta los siguientes comandos para crear un nuevo archivo de configuración llamado bolt.conf

sudo nano /etc/nginx/sites-available/bolt.conf

Rellena el archivo de configuración con el siguiente contenido:

server {
  listen 80; 
  listen [::]:80; 
  root /var/www/bolt; 
  index index.php index.html index.htm; 
  server_name bolt.example.com;
location / {
try_files      $uri $uri/ /index.php?$query_string;
}

location ~ [^/]\.php(/|$) {
try_files      /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index      index.php;
fastcgi_pass       unix:/var/run/php/php7.2-fpm.sock;
include         fastcgi_params;
fastcgi_param  PATH_INFO    $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location = /bolt {
try_files        $uri /index.php?$query_string;
}

location ^~ /bolt/ {
try_files         $uri /index.php?$query_string;
}

}

El bloque del servidor Nginx que acabamos de crear utiliza la raíz del documento por defecto, que está establecida en el directorio /var/www/. Si estás ejecutando BoltWire CMS en un entorno de servidor diferente, edita el archivo conf y sustituye la ruta de la raíz del documento en consecuencia.

La directiva server_name configura la URL en la que escuchará tu servidor web Nginx. Sustituye bolt.ejemplo.com por el nombre de dominio o la dirección IP real de tu servidor.

try_files $uri $uri/ /index.php?$cadena_de_consulta; Esta directiva te permite gestionar directamente las peticiones de rutas de archivos si se encuentran. Por ejemplo, si un usuario intenta acceder a la página de inicio de BoltWire CMS desde el navegador, se utilizará /index.php como archivo de índice si existe, de lo contrario se volverá a la respuesta 404 No encontrado de PHP-FPM.

Tras realizar los cambios y guardarlos en el archivo bolt.conf, recarga Nginx y reinícialo para que la nueva configuración surta efecto.

sudo systemctl reload nginx
sudo systemctl restart nginx

Comprueba la configuración de nginx ejecutando los siguientes comandos:

sudo nginx -t

Ejemplo de salida:

Comprueba la configuración de Nginx

Instalación de MySQL

BoltWire CMS requiere un mínimo de la versión 4.2 del servidor MySQL, pero BoltWire CMS no funciona con 5.x+.

Así que tienes varias opciones: Utilizar un servidor de base de datos remoto como Microsoft SQL Server Implementar MySQL en todas las máquinas del servidor web (no recomendado) Actualizar tu versión de MySQL. Las primeras opciones son bastante sencillas, pero el tipo de actualización es complejo.

Quienes utilicen una pila LAMP (Linux, Apache, MySQL y PHP), no tienen que instalar MySQL por separado porque Ubuntu ya incluye el servidor MySQL en su repositorio.

Ejecuta el siguiente comando para instalar MySQL:

sudo apt -y install mysql-server

Ejemplo de salida:

Instalar MySQL

Una vez completada la instalación, ejecuta el siguiente comando para iniciar el demonio MySQL (servidor MySQL) para esta sesión y permitir que se ejecute al iniciar el sistema:

sudo systemctl start mysql
sudo systemctl enable mysql

Crear una base de datos

Utilizaremos la línea de comandos para crear una base de datos llamada bolt.

Conéctate a mysql para crear una base de datos ejecutando el siguiente comando:

sudo mysql -u root -p

Introduce la contraseña de root para mysql. Ahora estás conectado a la consola mysql. Para crear una base de datos y un usuario de base de datos, ejecuta el comando siguiente:

CREATE DATABASE bolt;
CREATE USER 'bolt'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL ON bolt.* TO 'bolt'@'localhost';
FLUSH PRIVILEGES;
exit

CREATE USER ‘bolt’@’localhost’ IDENTIFIED BY ‘mypassword’ creará un usuario ‘bolt’ cuya contraseña es ‘mypassword’. ¡Utiliza aquí una contraseña segura en lugar de la palabra ‘mypassword’! Vaciar privilegios recargará la tabla de concesión de privilegios creada anteriormente.

Instalación de PHP

BoltWire CMS requiere PHP versión 7 o superior y sus cabeceras de desarrollo. Añadiremos el PPA ppa:ondrej/php con la versión de PHP requerida (7.2), puedes cambiarla por la versión de PHP que necesites. Ejecutaremos los siguientes comandos para añadir el ppa y actualizar apt-get

sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

Ejecuta el siguiente comando para instalar PHP 7.2:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-zip php7.2-pgsql php7.2-sqlite3 php7.2-curl php7.2-gd php7.2-mysql php7.2-intl php7.2-json php7.2-opcache php7.2-xml

php7.2-cli es la interfaz de línea de comandos para PHP7.2 y con php7.2-common instalará php7.2-extensions, el módulo del servidor web (PHP) y las extensiones estándar de la CLI. Con php7.2 -fpm instalará FastCGI Process Manager, una forma habitual de ejecutar aplicaciones PHP desde tu servidor web. php7.2-mbstring instalará funciones de cadena multibyte, necesarias para BoltWire CMS. php7.2-opcache instalará opcode cache para PHP7.2, que proporciona un mejor rendimiento y reduce la carga de tu servidor web almacenando en caché los scripts compilados. php7.2-xml instalará extensiones de procesamiento XML para PHP7.2, necesarias para utilizar BoltWire CMS.

Ejemplo de salida:

Instalar PHP

Después de instalar PHP 7.2, ejecuta los siguientes comandos para comprobar tu versión PHP7.2:

php -v

Salida de ejemplo:

Comprueba la versión de PHP

A continuación, abre el archivo de configuración por defecto de PHP para Nginx utilizando el editor de texto nano:

sudo nano /etc/php/7.2/fpm/php.ini

Ahora vamos a realizar los cambios en las siguientes líneas:

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/St. Louis
  • file_uploads = On habilita la función de subida de archivos al CMS BoltWire.
  • allow_url_fopen = Activado permite URLs directas o redirecciones HTTP en peticiones con archivos subidos desde el servidor web remoto.
  • memory_limit = 256M es el límite de memoria PHP 7.2 en MB a establecer para los procesos de trabajador Nginx, ejecutar un script PHP con alto consumo de memoria puede causar un error de ejecución php.
  • upload_max_filesize = 100M es el tamaño máximo para un único archivo de subida al sitio BoltWire CMS, si quieres habilitar la subida de archivos de tamaño ilimitado, cambia este valor a 0.
  • max_execution_time = 360 es el tiempo máximo de ejecución en segundos para que se ejecute un script PHP, si un script excede este valor será terminado.
  • date.timezone = America/St. Louis, la zona horaria de tu ubicación para mostrar correctamente los valores de fecha y hora del cliente en el sistema BoltWire CMS.

Reinicia php7.2-fpm para que los cambios anteriores surtan efecto:

sudo service php7.2-fpm restart

Esto debería ser suficiente para los paquetes PHP7.2 y relacionados necesarios, pasemos al siguiente paso.

Instalar Composer

BoltWire CMS requiere Composer para añadir sus librerías externas requeridas en el sitio web, por lo que necesitamos instalarlo primero antes de continuar con este tutorial. Composer es un gestor de paquetes para PHP que gestiona las dependencias de los proyectos PHP. Es similar al npm de NodeJS o a las gemas de ruby.

Primero, nos movemos al directorio de inicio y descargamos el instalador:

sudo curl -sS https://getcomposer.org/installer -o composer-setup.php

El comando de abajo instalará Composer:

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Lo anterior descargará e instalará Composer como un binario para todo el sistema en el directorio /usr/local/bin.

Puedes configurar Composer sólo para tu usuario sustituyendo la parte /usr/local/bin del comando por ~/usuario_.

Una vez finalizada la instalación, puedes ejecutar el siguiente comando para comprobar si la instalación se ha realizado correctamente.

composer

Ejemplo de salida:

Compositor PHP

Instalación de Bolt

Una vez instalados todos los paquetes necesarios, podemos proceder a instalar Bolt.

En primer lugar, nos desplazamos al directorio /var/www/ y descargamos la última versión de Bolt CMS desde GitHub con el siguiente comando:

cd /var/www/
sudo git clone https://github.com/bolt/bolt.git

Salida de ejemplo:

Descarga Bolt de Github

Una vez descargado, deberías ver un directorio llamado bolt con un único archivo llamado «composer.json», que es el archivo de configuración de composer para Bolt CMS.

Ahora nos moveremos al directorio bolt e instalaremos Bolt desde allí:

cd bolt
sudo composer install

Este comando instalará todos los archivos fuente y dependencias de Bolt necesarios en /var/www/bolt utilizando el gestor de paquetes Composer.

Salida de ejemplo:

Instala Bolt con Composer

El siguiente paso es ejecutar el siguiente comando para establecer el directorio de trabajo de Bolt:

sudo chown -R www-data:www-data /var/www/bolt
sudo chmod -R 755 /var/www/bolt

El comando anterior cambiará la propiedad de los archivos Bolt al usuario www-data de Nginx, para que pueda leer y escribir el archivo cuando se acceda a la URL de Bolt.

El siguiente paso es configurar el archivo de configuración de Bolt:

sudo cp app/config/config.yml.dist app/config/config.yml

Acceder al CMS BoltWire

Ahora deberíamos poder acceder a BoltWire CMS utilizando la siguiente URL desde un navegador en un ordenador Linux o Windows:

http://localhost:8000/bolt o http://bolt.example.com/bolt

Deberías obtener una página de inicio predeterminada de BoltWire CMS como la que se muestra a continuación:

Tienda CMS

Rellena toda la información requerida en este formulario y podrás acceder a tu dasboard BoltWire como el de abajo:

Cuadro de mandos del Bolt CMS

Ahora hemos configurado con éxito un servidor Linux para Bolt Wire CMS.

Si te encuentras con algún problema cuando intentas acceder a tu BoltWire CMS recién instalado. Aquí tienes una lista de los errores más comunes y sus posibles soluciones:

  • «Acceso denegado – error«. Esto significa que BoltWire CMS se está ejecutando pero no puedes acceder a sus páginas desde el navegador, intenta comprobar tu directorio de configuración Nginx.
  • «No se puede cargar la biblioteca dinámica ‘/var/www/BoltWire/vendor/php72-zip/libphp7. 2.so» o «Error al ejecutar el script». Esto significa que el directorio BoltWire CMS no tiene los permisos necesarios para ejecutar y ejecutar el archivo PHP.
  • «Error al inicializar … No such file or directory«. Esto significa que BoltWire CMS no está instalado correctamente. Debes comprobar si has seguido el procedimiento correcto para la instalación de BoltWire CMS.
  • «Permiso denegado«. Esto significa que no tienes acceso adecuado al directorio /var/www/bolt o /var/www.
  • «Error fatal: Clase ‘PDO’ no encontrada en…«. Esto significa que PHP no puede conectarse a la base de datos, y puede que necesites comprobar tu configuración de PHP.
  • «Buscando … » o «Advertencia: Argumento no válido suministrado para foreach()…». Esto significa que el CMS BoltWire es incapaz de encontrar lo que le has proporcionado. Normalmente esto se debe al desconocimiento del nombre del blog y del slug o ruta en tu configuración.
  • «No se puede crear el directorio … Índice indefinido: datos vistos«. Esto significa que el BoltWire CMS no puede crear su directorio en tu servidor Nginx y puede que necesites comprobar la configuración PHP.
  • «Error de análisis sintáctico: error de sintaxis, ‘=’ inesperado en … en …«. Esto significa que el BoltWire CMS no puede ejecutar su archivo o no puede leer uno de tus archivos. Esto puede ocurrir cuando has utilizado una sintaxis incorrecta en tu configuración.
  • «404 no encontrado nginx/1.14.0 (ubuntu)» Añadir un registro ‘A’ para bolt.ejemplo.com hacia tu servidor debería ayudar.
  • «404 no encontrado» o «La URL solicitada … no se encontró en este servidor«. Esto significa que BoltWire CMS no pudo encontrar sus archivos. Puede que necesites comprobar tu configuración de BoltWire y asegurarte de que has especificado la ruta correcta en ella.

BoltWire está instalado pero no hay páginas o aparece la página de inicio de sesión de BoltWire si BoltWire CMS está instalado, entonces Bolt buscará una plantilla BoltWire por defecto en la carpeta /var/www/bolt/_templates dentro del directorio de instalación de Bolt y si no encuentra ningún archivo allí, Bolt utilizará un archivo index.php en el directorio de instalación de Bolt como página de inicio. Si esto tampoco funciona, es posible que algo esté mal en tu configuración de PHP o en la configuración de Nginx.

Conclusión

BoltWire CMS es un gran software para gestionar un blog o un sitio web personal. Puedes obtener más información sobre Bolt CMS en el sitio oficial de BoltWire CMS.

Esperamos que este artículo te ayude a aprender cómo instalar BoltWire en un servidor Ubuntu 20.04. Si te gusta este artículo, compártelo con tus amigos en Twitter o Facebook. Si tienes alguna pregunta, no dudes en dejar un comentario a continuación.

También te podría gustar...