GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Bolt CMS en Debian 9

Bolt CMS es un sistema de gestión de contenido de código abierto simple y flexible que está escrito en el lenguaje de programación PHP y se puede implementar con éxito en Linux bajo los servidores web Apache/Nginx, PHP y el sistema de gestión de bases de datos MySQL/MariaDB, también conocido como pila LAMP o LEMP.

En este tutorial, aprenderemos a instalar y configurar la última versión de Bolt CMS en la versión Debian 9, sobre una pila LAMP, para crear sitios web dinámicos.

Con Bolt CMS, puede crear y diseñar hermosos y modernos portales dinámicos con los últimos lenguajes de marcado y bibliotecas de fuentes.

Requisitos

Para implementar un sitio web de Bolt CMS en sus instalaciones, debe asegurarse de que se cumplan algunos de los siguientes requisitos:

  • Necesita un servidor físico dedicado o una máquina virtual o un VPS de un proveedor de nube con la última versión de instalación mínima de Debian 9.
  • Una dirección IP estática configurada para una de las tarjetas de interfaz de red de su sistema
  • Acceso remoto o directo a la cuenta root o a una cuenta local o remota con privilegios de sudo root
  • Un nombre de dominio configurado correctamente, privado o público, según su implementación, con los registros DNS requeridos, como registros A y CNAME para apuntar a www. Si no tiene un nombre de dominio válido o registrado, puede realizar la instalación y acceder al sitio web a través de la dirección IP de su servidor
  • Para utilizar el registro de correo electrónico de Bolt CMS u otras funciones de CMS, debe configurar un servidor de correo en sus instalaciones (servicios IMAP y SMTP), aunque, en realidad, un servidor de correo público, como Gmail o Yahoo! se puede utilizar para lograr el mismo objetivo.

Requisitos previos

En el primer paso, inicie sesión en su servidor Debian con una cuenta raíz o con una cuenta con privilegios raíz obtenidos a través de la utilidad sudo e instale utilidades como zip, unzip (para descomprimir archivos zip), curl y wget (descarga de archivos en línea) y bash -Línea de comandos de finalización de autocompletado. Ejecute los siguientes comandos para instalar todas estas utilidades de una sola vez.

su -
apt install bash-completion zip unzip curl wget

En el siguiente paso, configure un nombre descriptivo para su máquina para reflejar el destino de este servidor ejecutando el siguiente comando. Reemplace su variable de nombre de host en consecuencia.

hostnamectl set-hostname www.myblog.com

Puede verificar el nombre de host de la máquina y el registro en el archivo de hosts del sistema emitiendo los siguientes comandos.

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

Antes de reiniciar el servidor, primero asegúrese de que el sistema esté actualizado con los últimos parches de seguridad, actualizaciones del kernel, repositorios y paquetes de software emitiendo el siguiente comando.

apt update
apt upgrade

Una vez que se complete el proceso de actualización, reinicie su máquina Debian para aplicar todas las actualizaciones del kernel y el nombre de host cambie correctamente.

systemctl reboot

Instalar Apache y PHP

Como se dijo en la introducción, Bolt CMS es una plataforma de administración de contenido basada en la web que está escrita en el lenguaje de programación del lado del servidor PHP y debe implementarse sobre una pila LAMP. Primero, comenzaremos instalando el servidor Apache HTTP y el intérprete de PHP junto con algunas extensiones de PHP requeridas por Bolt CMS para funcionar correctamente. Para instalar el componente del servidor web y el lenguaje de programación PHP con todos los módulos necesarios, emita el siguiente comando en la consola de su servidor con privilegios de root.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-json php7.0-mbstring php7.0-xml php7.0-cli php7.0-curl php7.0-zip php7.0-bcmath php-imagick php7.0-xmlrpc php7.0-intl

Luego, verifique si todos los módulos PHP instalados están habilitados en su sistema ejecutando el siguiente comando.

php7.0 –m

Instalar MariaDB

El siguiente componente que falta es la base de datos RDBMS. En este tutorial, instalaremos Bolt CMS con el servidor de base de datos MariaDB como backend. La aplicación web Bolt CMS utiliza la base de datos MariaDB para almacenar diferentes configuraciones de sitios web, usuarios, sesiones y otros datos diversos. Para instalar el servidor y el cliente de la base de datos MariaDB y la extensión PHP MySQL en Debian 9, emita el siguiente comando en la consola de su servidor.

apt install mariadb-server mariadb-client php7.0-mysql

Una vez completada la instalación de MariaDB, verifique si el demonio de la base de datos está funcionando en su máquina y escucha las conexiones entrantes en el host local, puerto 3306, ejecutando netstat o ss comando.

netstat –tlpn | grep mysql

O

ss –tlpn | grep mysql

Si netstat La utilidad de red no está instalada de forma predeterminada en su sistema Debian, ejecute el siguiente comando para instalarla.

apt install net-tools

De forma predeterminada, el servidor de la base de datos MySQL no está suficientemente protegido en Debian 9. Se puede acceder a la cuenta raíz de la base de datos proporcionando una contraseña. Para proteger el servidor de la base de datos, primero inicie sesión en la consola MySQL y ejecute los siguientes comandos para proteger la cuenta raíz de MariaDB.

mysql -h localhost
Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1


Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A


Database change
MariaDB [mysql]> update user set plugin='' where user='root';
Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> exit
Bye

Una vez que hayamos obligado a la cuenta raíz de la base de datos a usar una contraseña, proteja aún más el servidor MariaDB ejecutando el script mysql_secure_installation proporcionada por los paquetes de instalación de los repositorios de extensión de Debian. Mientras se ejecuta el script, se le harán una serie de preguntas diseñadas para asegurar la base de datos MariaDB, tales como:cambiar la contraseña raíz de MySQL, eliminar usuarios anónimos, deshabilitar los inicios de sesión raíz remotos y eliminar la base de datos de prueba. Ejecute el script emitiendo el siguiente comando y configure una contraseña segura para la cuenta raíz de la base de datos y asegúrese de escribir a todas las preguntas formuladas, como se muestra en el siguiente extracto.

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!


In order to log into MariaDB to secure it, we'll need the current

password for the root user. If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.


Enter current password for root (enter for none):

OK, successfully used password, moving on...


Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.


You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them. This is intended only for testing, and to make the installation

go a bit smoother. You should remove them before moving into a

production environment.


Remove anonymous users? [Y/n] y

... Success!


Normally, root should only be allowed to connect from 'localhost'. This

ensures that someone cannot guess at the root password from the network.


Disallow root login remotely? [Y/n] y

... Success!


By default, MariaDB comes with a database named 'test' that anyone can

access. This is also intended only for testing, and should be removed

before moving into a production environment.


Remove test database and access to it? [Y/n] y

- Dropping test database...

... Success!

- Removing privileges on test database...

... Success!


Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.


Reload privilege tables now? [Y/n] y

... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

Una vez que se complete el script, inicie sesión en la base de datos desde la consola sin contraseña de root. Se debe denegar el acceso a la base de datos si no se proporciona una contraseña para la cuenta raíz, como se ilustra en el siguiente extracto del comando:

mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Si se proporciona la contraseña, el proceso de inicio de sesión debe otorgarse a la consola de MySQL, como se muestra en el ejemplo de comando. Escriba exit para salir de la consola de la base de datos.

mysql -h localhost -u root -p
Enter password:

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 15

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye

Después de que se hayan instalado todos los componentes de LAMP, pruebe si el servidor web está funcionando y escuchando conexiones de red en el puerto 80 emitiendo el siguiente comando con privilegios de root.

netstat –tlpn

Al inspeccionar la salida del comando netstat, puede ver que el servidor web Apache está escuchando las conexiones de red entrantes en el puerto 80. Para la misma tarea, también puede usar ss comando, que se instala automáticamente, por defecto, en Debian 9.

ss- tulpn

Configurar el cortafuegos

En caso de que tenga un firewall habilitado en su sistema, como la aplicación de firewall UFW, debe agregar una nueva regla para permitir que el tráfico HTTP pase a través del firewall emitiendo el siguiente comando.

ufw allow WWW

o

ufw allow 80/tcp

También debe permitir que el tráfico SSH pase a través del firewall UFW en caso de conexiones remotas al servidor.

ufw allow 22/tcp

Algunos administradores de sistemas prefieren usar iptables reglas sin procesar para administrar las reglas de Firewall en su servidor Debian. Si ese es el caso, debe agregar las siguientes reglas para permitir el tráfico entrante del puerto 80 en el firewall para que otros visitantes puedan navegar por su sitio web.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service

En caso de que esté conectado al servidor Debian de forma remota a través de SSH, primero debe agregar la siguiente regla para permitir que el tráfico SSH pase a través del firewall de iptables. De lo contrario, quedará encerrado porque el cortafuegos comenzará a descartar todo el tráfico entrante en el puerto 22.

iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent

Después de agregar las reglas de firewall requeridas, debe probar si el servidor web Apache es accesible en su red, abriendo un navegador y visitando la dirección IP de su máquina Debian o su nombre de dominio o servidor FQDN a través del protocolo HTTP. Si las conexiones entrantes están permitidas en el puerto 80, la página web predeterminada debe mostrarse en los navegadores de sus clientes. Si no conoce la dirección IP de su máquina, ejecute ifconfig o ip a comando para revelar la dirección IP de su servidor.

http://tu_dominio.tld

Configurar Apache y PHP

En el siguiente paso, debemos realizar algunos cambios adicionales en el archivo de configuración predeterminado de PHP y modificar las siguientes variables de PHP como se describe a continuación. Además, asegúrese de que la zona horaria de PHP la configuración está configurada correctamente y coincide con la ubicación geográfica de su sistema. Abra /etc/php/7.0/apache2/php.ini archivo para editar después de que inicialmente, haga una copia de seguridad del archivo de configuración de PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Busque, edite y cambie las siguientes variables en php.ini archivo de configuración:

file_uploads = On
memory_limit = 128M
post_max_size = 80M
upload_max_filesize = 80M
default_charset = UTF-8
short_open_tag = off
intl.error_level = 0
magic_quotes_gpc =off
register_globals = off
session.auto_start = off
date.timezone = Europe/London

Aumente el upload_max_file_size variable como adecuada para admitir archivos adjuntos de gran tamaño si ese es el caso y reemplazar date.timezone variable de acuerdo a su hora geográfica consultando la lista de zonas horarias proporcionada por PHP docs en el siguiente enlace http://php.net/manual/en/timezones.php

Para aumentar la velocidad de carga de las páginas de su sitio web a través del complemento OPCache disponible para PHP7, agregue la siguiente configuración de OPCache en la parte inferior del archivo de configuración del intérprete de PHP, debajo de [opcache] declaración, como se detalla aquí:

nano /etc/php/7.0/apache2/php.ini
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Una vez que haya modificado todas las líneas que se describen a continuación, cierre php.ini archivo de configuración y verifique si las variables de OPCache se agregaron correctamente emitiendo el siguiente comando.

grep opcache /etc/php/7.0/apache2/php.ini

A continuación, debemos habilitar la reescritura de Apache y los módulos TLS para obligar a los visitantes a navegar de forma segura por el sitio web a través del protocolo HTTPS. El módulo TSL protegerá el tráfico entre el servidor y los navegadores de sus clientes con un certificado autofirmado emitido automáticamente por Apache. También debe activar el archivo de configuración Apache SSL para que el módulo TLS funcione correctamente. Ejecute el siguiente comando para activar todas las configuraciones requeridas.

a2enmod ssl rewrite
a2ensite default-ssl.conf

Una vez que hayamos habilitado los módulos de reescritura y TLS, abra el archivo de configuración del sitio SSL predeterminado de Apache con un editor de texto y agregue las líneas de código de reglas de reescritura de URL después de DocumentRoot directiva, como se muestra en el siguiente ejemplo. Además, cambie DocumentRoot ruta a /var/ww/html/public .

nano /etc/apache2/sites-enabled/default-ssl.conf

Extracto del archivo de configuración del sitio SSL:

DocumentRoot  /var/www/html/public
<Directory /var/www/html/public>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>

Cierra el archivo Apache SSL y también abre /etc/apache2/sites-enabled/000-default.conf para editar y agregar las mismas reglas de reescritura de URL que para el archivo de configuración SSL. Inserte las líneas de código después de DocumentRoot declaración como se muestra en el siguiente ejemplo. Además, modifique DocumentRoot ruta para apuntar a /var/ww/html/public directorio.

DocumentRoot  /var/www/html/public
<Directory /var/www/html/public>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>

Una vez que haya realizado todos los cambios explicados anteriormente, debe reiniciar el demonio de Apache para aplicar todas las reglas.

systemctl restart apache2

Finalmente, abra un navegador y visite su nombre de dominio o dirección IP del servidor a través del protocolo HTTP. Debido a que está utilizando los pares de certificados autofirmados automáticamente emitidos por Apache en la instalación, un certificado que no es de confianza para el navegador, se debe mostrar una advertencia de error en el navegador. Acepte la advertencia para aceptar el certificado que no es de confianza y continúe siendo redirigido a la página web predeterminada de Apache.

https://tudominio.tld

Si la aplicación de firewall UFW bloquea las conexiones de red entrantes al puerto HTTPS, inserte una nueva regla para permitir que el tráfico HTTPS pase a través del firewall emitiendo el siguiente comando.

ufw allow ‘WWW Full’

o

ufw allow 443/tcp

Si iptables es la aplicación de firewall predeterminada instalada para proteger su sistema Debian a nivel de red, agregue la siguiente regla para permitir el tráfico entrante del puerto 443 en el firewall para que los visitantes puedan navegar por su nombre de dominio.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent

Finalmente, cree un archivo de información PHP en la ruta webroot del servidor web ejecutando el siguiente comando.

echo '<?php phpinfo(); ?>'| tee /var/www/html/public/info.php

Visite el archivo de secuencia de comandos de información de PHP desde un navegador en la siguiente URL, como se ilustra en la imagen a continuación. Desplácese hacia abajo hasta fecha configuración para verificar la configuración de la zona horaria de PHP. La configuración de la zona horaria debe reflejar su ubicación geográfica PHP configurada anteriormente.

https://dominio.tld/info.php

A continuación, inicie sesión en la consola de la base de datos de MariaDB y cree la base de datos de Bolt CMS y un usuario con una contraseña que se usará para administrar la base de datos del sitio web desde localhost, emitiendo los siguientes comandos. Reemplace el nombre de la base de datos, el usuario y la contraseña según corresponda.

mysql –u root -p
Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 305

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1


Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE bolt_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on bolt_db.* to 'bolt_user'@'localhost' identified by 'password1234';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye

Instalar Bolt CMS

Una vez que se cumplan todos los requisitos del sistema para instalar la aplicación Bolt CMS, visite la página de descarga oficial de Bolt en https://bolt.cm/pages/download y obtenga el último archivo comprimido zip en su sistema emitiendo el siguiente comando.

wget https://bolt.cm/distribution/bolt-latest.zip 

Una vez que finalice la descarga del archivo zip, extraiga el archivo zip de Bolt CMS en su directorio de trabajo actual y enumere los archivos extraídos emitiendo los siguientes comandos. Además, elimine el archivo index.html predeterminado instalado por el servidor web Apache en la ruta webroot y también elimine el archivo info.php creado anteriormente.

unzip bolt-latest.zip
ls bolt-[TAB]
rm /var/www/html/index.html
rm /var/www/html/public/info.php

Los archivos de instalación de Bolt CMS se encuentran en su directorio de trabajo actual en bolt-v3.4.4/ directorio. Problema ls Comando para enumerar los archivos de este directorio. Copie todo el contenido del directorio extraído en la ruta raíz del documento de su servidor web emitiendo el siguiente comando. Además, asegúrese de copiar el archivo oculto .htaccess a la ruta webroot.

cp -rf bolt-v3.4.4/* /var/www/html/
cp -rf bolt-v3.4.4/.bolt.yml.dist /var/www/html/bolt.yml

A continuación, ejecute los siguientes comandos para otorgar al usuario de tiempo de ejecución de Apache permisos completos de escritura en la ruta raíz web. Usar ls Comando para enumerar los permisos para los archivos instalados de la aplicación, ubicados en el directorio /var/www/html/.

chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/

A continuación, abra el archivo de configuración de Bolt CMS y agregue la información de conexión de la base de datos MySQL, como se muestra en el siguiente extracto del archivo:

nano /var/www/html/app/config/config.yml

config.yml muestra de archivo:

database:
driver: mysql
databasename: bolt_db
username: bolt_user
password: password1234

Guarde y cierre el archivo de configuración de Bolt CMS, ingrese el /var/www/html directorio e instale el software de administración de dependencia PHP Composer emitiendo los siguientes comandos.

cd /var/www/html/
mv composer.json.dist composer.json
curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...
Composer (version 1.5.5) successfully installed to: /var/www/html/composer.phar
Use it: php composer.phar
php7.0 composer.phar install
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 5 updates, 0 removals
- Updating league/flysystem-sftp (1.0.14 => 1.0.15): Downloading (100%)
- Updating doctrine/inflector (v1.1.0 => v1.2.0): Downloading (100%)
- Updating doctrine/collections (v1.3.0 => v1.4.0): Downloading (100%)
- Updating doctrine/annotations (v1.2.7 => v1.4.0): Downloading (100%)
- Updating doctrine/common (v2.6.2 => v2.7.3): Downloading (100%)
Writing lock file
Generating autoload files
> Bolt\Composer\ScriptHandler::updateProject
> Bolt\Composer\ScriptHandler::installAssets
Installing bolt_assets to /var/www/html/public/bolt-public

Después de instalar Composer, abra un navegador y navegue hasta la dirección IP o el nombre de dominio de su servidor a través del protocolo HTTPS. En la primera pantalla de instalación, cree el primer nombre de usuario de Bolt CMS, agregue una contraseña segura para este usuario y proporcione la dirección de correo electrónico y el nombre para mostrar de la cuenta de administrador de Bolt. Cuando termine, haga clic en Crear el primer usuario botón para guardar los cambios.

Después de crear el nombre de usuario de administrador de Bolt, se le redirigirá al panel de administración de Bolt CMS, desde donde puede comenzar a configurar más la aplicación o agregar algún contenido del sitio web.

Para visitar la página de inicio de Bolt CMS, abra un navegador y navegue hasta su nombre de dominio o dirección IP del servidor a través del protocolo HTTPS.

https://www.tudominio.tld

Se puede acceder al panel de administración de back-end de Bolt CMS en la siguiente URL. Para iniciar sesión, proporcione el nombre de usuario y la contraseña configurados para la cuenta inicial durante el proceso de instalación.

https://www.tudominio.tld/bolt/login

Finalmente, para obligar a los visitantes a navegar de forma segura en la interfaz de Bolt CMS a través del protocolo HTTPS, regrese a la consola de su servidor y edite el .htaccess archivo ubicado en la ruta raíz del documento del directorio público, emitiendo el siguiente comando.

nano /var/www/html/public/.htaccess

Aquí, busque la línea que comienza con etiqueta de apertura y agregue las siguientes líneas después de RewriteEngine on directiva.

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

En la parte inferior del archivo, puede modificar la configuración del servidor PHP para que coincida con sus propios recursos y configuraciones del servidor, como se muestra en el siguiente ejemplo.

php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 50M
php_value post_max_size 50M

¡Felicidades! Ha instalado correctamente la aplicación Bolt CMS moderna en el servidor Debian 9. Para personalizar aún más la aplicación, visite la página de documentación de Bolt CMS en la siguiente dirección:https://docs.bolt.cm/3.4/getting-started/introduction


Debian
  1. Cómo instalar el servidor Redis en Debian 11

  2. Cómo instalar PHP 7.4/7.3/7.2/7.1 en Debian 10/Debian 9

  3. Cómo instalar MySQL 8.0/5.7 en Debian 11/Debian 10

  4. Cómo instalar ProFTPD en Debian 8

  5. Cómo instalar el servidor MySQL en Debian 9

Cómo instalar MySQL 8 en Debian 10

Cómo instalar Todoman en el servidor Debian 11

Cómo instalar FastPanel en Debian 11

Cómo instalar I2P en el servidor Debian:

Cómo instalar VNC en Debian 10

Cómo instalar el servidor VNC en Debian 11