Cómo instalar OctoberCMS en Debian 12

October CMS es una aplicación web escrita en el framework web Laravel. Es compatible con varias bases de datos, como MySQL/MariaDB, PostgreSQL y SQLite. Puede ejecutarse bajo Apache, Nginx, Lighthttpd y Microsoft IIS.

Esta guía te guiará a través del proceso de instalación de October CMS en Debian 12 con la pila LEMP (Nginx, MySQL/MariaDB y PHP-FPM), UFW y Certbot.

Requisitos previos

Para continuar con esta guía, reúne lo siguiente:

  • Un servidor Debian 12.
  • Un usuario no root con usuario administrador.
  • Un nombre de dominio apuntando a la dirección IP del servidor.

Instalación de las dependencias

En este ejemplo, instalarás October CMS en el servidor Debian con la pila LEMP (Nginx, MySQL/MariaDB y PHP-FPM). Por tanto, la primera tarea que harás será instalar la Pila LAMP con dependencias adicionales como UFW (Cortafuegos sin complicaciones) y Certbot.

Comienza esta guía actualizando tu repositorio Debian mediante el siguiente comando.

sudo apt update

A continuación, instala los paquetes LAMP Stack, UFW y Certbot utilizando el siguiente comando.

sudo apt install nginx mariadb-server php composer php-cli php-common php-imap php-redis php-snmp php-xml php-zip php-mbstring php-curl php-mysqli php-intl php-bcmath php-gd php-fpm ufw certbot python3-certbot-nginx

Escribe Y y pulsa ENTER para confirmar la instalación.

instalar deps

Una vez finalizada la instalación, comprueba los servicios de la Pila LEMP para asegurarte de que cada servicio se está ejecutando y está habilitado en tu servidor Debian.

Si el servicio se está ejecutando, deberías ver una salida activa (en ejecución). Si el servicio está habilitado, confirma que se ejecutará automáticamente al arrancar.

Comprueba el servicio Nginx utilizando el siguiente comando.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

comprobar nginx

Comprueba el servicio PHP-FPM utilizando el siguiente comando. En este caso, has instalado PHP-FPM 8.2 desde el repositorio de Debian.

sudo systemctl is-enabled php8.2-fpm
sudo systemctl status php8.2-fpm

comprobar php-fpm

Por último, comprueba el servidor MariaDB utilizando el comando siguiente.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

comprobar mariadb

Configurar UFW

En esta guía, asegurarás tu servidor Debian con UFW (Uncomplicated Firewall). Así que, en ese caso, debes abrir puertos para los protocolos SSH, HTTP y HTTPS.

Ejecuta el siguiente comando ufw para habilitar los perfiles OpenSSH y«Nginx Full» en UFW. El perfil OpenSSH abrirá el puerto SSH 22 por defecto, mientras que el perfil «Nginx Full» abrirá los puertos 80 y 443 para los protocolos HTTP y HTTPS.

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'

Ahora ejecuta el siguiente comando para iniciar y habilitar UFW. Escribe y y pulsa ENTER para continuar.

sudo ufw enable

Una vez que UFW se esté ejecutando, deberías obtener el mensaje«El cortafuegos está activo y habilitado al iniciar el sistema«.

configuración ufw

Ahora ejecuta el siguiente comando para verificar la lista de perfiles habilitados en UFW.

sudo ufw status

Asegúrate de que los perfiles OpenSSH y ‘Nginx Full’ están habilitados.

verificar ufw

Configurar el servidor MariaDB

Después de haber configurado UFW, ahora configurarás el servidor MariaDB mediante la utilidad mariadb-secure-installation, luego crearás una nueva base de datos y un nuevo usuario para October CMS mediante el cliente mariadb.

Asegura la instalación de tu servidor MariaDB ejecutando el siguiente comando.

sudo mariadb-secure-installation

Durante el proceso, se te pedirán algunas recomendaciones de seguridad para el servidor MariaDB. Introduce Y para aplicar la recomendación, o n para rechazarla.

  • La instalación por defecto de MariaDB viene sin contraseña, pulsa ENTER cuando se te pida la contraseña.
  • Ahora introduce Y para establecer la contraseña raíz de MariaDB. A continuación, escribe la nueva contraseña para MariaDB y repite la contraseña.
  • Introduce Y para eliminar el usuario anónimo de tu instalación de MariaDB.
  • Vuelve a introducir Y cuando se te pida para desactivar el inicio de sesión remoto para el usuario raíz de MariaDB.
  • Introduce Y para eliminar la prueba de base de datos por defecto de tu MariaDB.
  • Por último, introduce Y para recargar los privilegios de las tablas y aplicar los nuevos cambios.

Ahora que ya has configurado el servidor MariaDB, escribe el siguiente comando para acceder al servidor MariaDB y crear una nueva base de datos y un nuevo usuario para October CMS. Introduce tu contraseña de root de MariaDB cuando te lo pida.

sudo mariadb -u root -p

Ejecuta las siguientes consultas para crear una nueva base de datos y un nuevo usuario octobercms, con la contraseña‘password’. Asegúrate de cambiar la contraseña por una nueva contraseña segura.

CREATE USER 'octobercms'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE octobercms;
GRANT ALL PRIVILEGES ON octobercms.* TO 'octobercms'@'localhost';
FLUSH PRIVILEGES;

crear usuario de base de datos

A continuación, ejecuta la siguiente consulta para verificar los privilegios del usuario octobercms.

SHOW GRANTS FOR 'octobercms'@'localhost';

Asegúrate de que el usuario octobercms puede acceder a la base de datos octobercms como se indica a continuación.

verificar usuario

Ahora escribe quit para salir del servidor MariaDB.

Instalar el código fuente de OctoberCMS

October CMS se puede instalar de varias formas, mediante zip o mediante Composer. En este ejemplo, instalarás October CMS a través de Composer.

Ve al directorio /var/www/directory y descarga el código fuente de October CMS utilizando el comando wget que aparece a continuación. Una vez descargado, verás el archivo v3.5.0.zip.

cd /var/www/
wget https://github.com/octobercms/october/archive/refs/tags/v3.5.0.zip

Extrae el archivo v3.5.0.zip utilizando unzip al directorio octobercms. Esto significa que el directorio raíz de tu web October CMS estará en /var/www/octobercms.

unzip v3.5.0.zip
sudo mv october-* octobercms

A continuación, ejecuta el siguiente comando para cambiar la propiedad de /var/www/octobercms al usuario www-data y al grupo www-data. Además, establece el permiso para los directorios en 0755 y para los archivos en 0644.

sudo chown -R www-data:www-data octobercms
find /var/www/octobercms -type d -exec chmod 755 {} \;
find /var/www/octobercms -type f -exec chmod 644 {} \;

Ahora, ejecuta el comando composer que se indica a continuación para instalar las dependencias PHP para October CMS.

sudo -u www-data composer install

instalar deps php

Inicia la instalación de October CMS con el siguiente comando.

sudo -u www-data php artisan october:install

Durante el proceso, se te preguntará lo siguiente:

  • Selecciona el idioma por defecto como en o English.
  • Introduce el nombre de dominio de tu instalación de October CMS. Por ejemplo http://hwdomain.io/
  • Introduce la URL del backend o ruta de administración de October CMS. En este caso, usaremos octoberadmin.
  • Introduce el número 1 para seleccionar el motor de base de datos MySQL.
  • Introduce los detalles de tu base de datos.
  • Introduce sí para instalar los datos de demostración y el tema.
  • Introduce la licencia gratuita de October CMS para continuar.

A continuación se muestra una captura de pantalla de la instalación de October CMS.

octubre instalación cms

Configuraciones del sitio para October CMS.

instalación in situ

Salida durante la instalación de October CMS.

clave de licencia e instalación en el sitio

Una vez finalizada la instalación de October CMS, verás la siguiente salida.

instalación finalizada

Por último, ejecuta el siguiente comando para migrar la base de datos.

sudo -u www-data php artisan october:migrate

migrar base de datos

Configurar el bloque del servidor Nginx

Tras descargar October CMS y configurar su directorio raíz web, crearás una nueva configuración de bloque de servidor Nginx que se utilizará para ejecutar October CMS. Asegúrate de tener preparado tu nombre de dominio.

Ejecuta el siguiente comando del editor nano para crear un nuevo archivo /etc/nginx/sites-available/octobercms.conf.

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

Introduce la siguiente configuración y asegúrate de cambiar el nombre de dominio hwdomain.io por tu dominio.

server {
    listen 80;

server_name hwdomain.io;

index index.php index.html;
root /var/www/octobercms;

location / {
# Let October CMS handle everything by default.
# The path not resolved by the October CMS router will return October CMS’s 404 page.
# Everything that does not match with the allowlist below will fall into this.
rewrite ^/.*$ /index.php last;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_read_timeout 120s;
}

# Allowlist
location ~ ^/favicon\.ico { try_files $uri /index.php; }
location ~ ^/sitemap\.xml { try_files $uri /index.php; }
location ~ ^/robots\.txt { try_files $uri /index.php; }
location ~ ^/humans\.txt { try_files $uri /index.php; }

# Block all .dotfiles except well-known
location ~ /\.(?!well-known).* { deny all; }

## Let nginx return 404 if static file not exists
location ~ ^/storage/app/uploads/public { try_files $uri 404; }
location ~ ^/storage/app/media { try_files $uri 404; }
location ~ ^/storage/app/resources { try_files $uri 404; }
location ~ ^/storage/temp/public { try_files $uri 404; }

location ~ ^/modules/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/behaviors/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/behaviors/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/widgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/widgets/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/formwidgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/formwidgets/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/reportwidgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/reportwidgets/.*/resources { try_files $uri 404; }

location ~ ^/plugins/.*/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/behaviors/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/behaviors/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/reportwidgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/reportwidgets/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/formwidgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/formwidgets/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/widgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/widgets/.*/resources { try_files $uri 404; }

location ~ ^/themes/.*/assets { try_files $uri 404; }
location ~ ^/themes/.*/resources { try_files $uri 404; }

}

Guarda y cierra el archivo cuando hayas terminado.

A continuación, ejecuta el siguiente comando para activar el archivo de bloque del servidor octobercms.conf y verifica la sintaxis de Nginx.

sudo ln -s /etc/nginx/sites-available/octobercms.conf /etc/nginx/sites-enabled/
sudo nginx -t

Si la sintaxis es correcta, deberías obtener una salida como ‘syntax is ok – test is successful’.

configuración de nginx

Por último, aplica tus cambios a Nginx reiniciando el servicio Nginx mediante el comando que aparece a continuación.

sudo systemctl restart nginx

Proteger OctoberCMS con certificados SSL/TLS

Llegados a este punto, tu October CMS está funcionando y es accesible. Pero para asegurarte de que tu instalación es segura, implementarás HTTPS generando certificados SSL/TLS desde letsencrypt.

Ejecuta el siguiente comando para generar certificados SSl/TLS para tu instalación de October CMS. Asegúrate de cambiar la dirección de correo electrónico y el nombre de dominio con tu información.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d hwdomain.io

Una vez finalizado el proceso, tu nombre de dominio se configurará automáticamente con HTTPS. Y tus certificados SSL/TLS estarán disponibles en el directorio /etc/letsencrypt/live/yourdomain.com.

Acceder a OctoberCMS

Visita el nombre de dominio de tu instalación de October CMS, por ejemplo, https://hwdomain.io/ utilizando tu navegador web favorito.

Si tu instalación se ha realizado correctamente, deberías obtener la página de inicio predeterminada de OctoberCMS como la siguiente.

Haz clic en el botón«Área Backend» para acceder a la página de administración de October CMS.

octubre cms página de inicio

Introduce los datos del nuevo usuario administrador, nombre, dirección de correo electrónico y contraseña. Haz clic en Crear cuenta para confirmar.

configuración administrativa

Cuando hayas terminado, deberías obtener el panel de control de administrador de October CMS como el siguiente.

salpicadero octobercms

Conclusión

¡Enhorabuena! Ya has completado la instalación de October CMS en el servidor Debian 12. Has instalado October CMS con LEMP Stack (Nginx, MariaDB y PHP-FPM). También has asegurado tu instalación con UFW (Uncomplicated Firewall) y SSL/TLS mediante Letsencrypt.

También te podría gustar...