Cómo instalar Bolt CMS con Nginx en Ubuntu 20.04

Bolt es un sistema de gestión de contenidos gratuito, de código abierto, ligero y sencillo, basado en PHP. Está diseñado para ser fácil de usar y te ayuda a crear fácilmente sitios web de contenido potente y dinámico. Está construido sobre el microframework Silex y es una gran alternativa para quienes buscan un sistema PHP moderno. Está creado con modernas librerías de código abierto y es el más adecuado para construir sitios en HTML5 con un marcado moderno.

En este tutorial, te mostraremos cómo instalar Bolt CMS con Nginx y Let’s Encrypt SSL en Ubuntu 20.04.

Requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada el servidor.

Cómo empezar

Antes de empezar, se recomienda siempre actualizar tu sistema con la última versión de los paquetes. Puedes actualizarlo con el siguiente comando:

apt-get update -y

Una vez actualizados todos los paquetes, instala otras dependencias ejecutando el siguiente comando:

apt-get install software-properties-common gnupg2 unzip git -y

Después de instalar todas las dependencias, puedes pasar al siguiente paso.

Instalar el servidor LEMP

Primero, instala el servidor Nginx y MariaDB ejecutando el siguiente comando:

apt-get install nginx mariadb-server -y

A continuación, tendrás que instalar la versión 7.2 de PHP en tu servidor. Por defecto, Ubuntu 20.04 viene con la versión 7.4 de PHP. Así que tendrás que añadir el repositorio de PHP de Ondrej en tu sistema.

Puedes añadir el repositorio de PHP con el siguiente comando:

add-apt-repository ppa:ondrej/php

Una vez añadido el repositorio, actualiza el repositorio e instala el PHP y otras extensiones necesarias con el siguiente comando:

apt-get update -y
apt-get install 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 -y
Once all the packages are installed, you can proceed to the next step.

Crear una base de datos para Bolt

A continuación, tendrás que crear una base de datos y un usuario para Bolt. Primero, inicia sesión en MariaDB con el siguiente comando:

mysql

Una vez iniciada la sesión, crea una base de datos y un usuario con el siguiente comando

MariaDB [(none)]> CREATE DATABASE boltdb;
MariaDB [(none)]> CREATE USER 'bolt'@'localhost' IDENTIFIED BY 'password';

A continuación, concede todos los privilegios a la base de datos de Bolt con el siguiente comando:

MariaDB [(none)]> GRANT ALL ON boltdb.* TO 'bolt'@'localhost';

A continuación, vacía los privilegios y sal del shell de MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Una vez que hayas terminado, puedes pasar al siguiente paso.

Descargar Bolt CMS

En primer lugar, tendrás que descargar la última versión de Bolt CMS desde el repositorio Git. Puedes descargarla en el directorio raíz de Nginx ejecutando el siguiente comando:

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

Una vez descargado Bolt, cambia el directorio a bolt y copia el archivo config de ejemplo:

cd bolt
cp app/config/config.yml.dist app/config/config.yml

A continuación, edita el archivo config.yml y define la configuración de tu base de datos:

nano app/config/config.yml

Elimina la línea de la base de datos sqlite por defecto y añade las siguientes líneas:

database:
     driver: mysql
     username: bolt
     password: password
     databasename: boltdb
     host: localhost
     prefix: prefix_

Guarda y cierra el archivo cuando hayas terminado.

A continuación, tendrás que instalar Composer en tu sistema. Composer es un gestor de dependencias para PHP. Puedes instalarlo con el siguiente comando:

wget -O composer-setup.php https://getcomposer.org/installer
php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Una vez instalado el Composer, deberías obtener la siguiente salida:

All settings correct for using Composer
Downloading...

Composer (version 2.0.2) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

A continuación, instala las dependencias de PHP necesarias para Bolt CMS con el siguiente comando:

composer install

Una vez instaladas todas las dependencias, cambia la propiedad y los permisos del directorio bold:

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

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Nginx para Bolt

A continuación, tendrás que crear un archivo de configuración del host virtual Nginx para Bolt CMS. Puedes crearlo con el siguiente comando:

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

Añade las siguientes líneas:

server { 
   listen 80; 
   root /var/www/html/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; 
  } 

}

Guarda y cierra el archivo cuando hayas terminado y luego habilita el archivo de host virtual Nginx con el siguiente comando:

ln -s /etc/nginx/sites-available/bolt.conf /etc/nginx/sites-enabled/bolt.conf

A continuación, verifica si Nginx tiene algún error de configuración con el siguiente comando:

nginx -t

Deberías ver la siguiente salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Por último, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

En este punto, Nginx está configurado para servir a Bolt CMS. Ahora puedes pasar al siguiente paso.

Acceder a Bolt CMS

Ahora, abre tu navegador web y escribe la URL http://bolt.example.com. Serás redirigido a la siguiente página:

Crear usuario administrador

Proporciona tu nombre de usuario, contraseña y correo electrónico deseados y haz clic en el botón Crear el primer usuario. Deberías ver el panel de control de Bolt CMS en la siguiente página:

Tablero de mandos de Bolt CMS

Ahora, haz clic en el botón Ver sitio. Deberías ver la página del sitio simple de Bolt CMS en la siguiente página:

Sitio de muestra de Bolt CMS

Asegura BoltCMS con Let’s Encrypt SSL

Siempre es una buena idea asegurar tu sitio web con Let’s Encrypt SSL. Primero, instala el cliente Let’s Encrypt de Certbot en tu servidor con el siguiente comando:

apt-get install python3-certbot-nginx -y

Una vez instalado, asegura tu sitio web con Let’s Encrypt SSL ejecutando el siguiente comando:

certbot --nginx -d bolt.example.com

Se te pedirá que proporciones una dirección de correo electrónico válida y que aceptes las condiciones del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for bolt.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/bolt.conf

A continuación, elige si quieres redirigir el tráfico HTTP a HTTPS como se muestra a continuación:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Escribe 2 y pulsa Intro para finalizar la instalación. Deberías ver el siguiente resultado:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/bolt.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://bolt.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=bolt.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/bolt.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/bolt.example.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Ahora, tu sitio web BoltCMS está protegido con Let’s Encrypt SSL. Puedes acceder a él de forma segura utilizando la URL https://bolt.example.com

Conclusión

Enhorabuena! has instalado con éxito Bolt CMS con Nginx y Let’s Encrypt SSL en el servidor Ubuntu 20.04. Ahora puedes crear fácilmente tu propio sitio web utilizando el panel de control de Bolt. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...