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.
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
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
Por último, comprueba el servidor MariaDB utilizando el comando siguiente.
sudo systemctl is-enabled mariadb sudo systemctl status 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«.
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.
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;
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.
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
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.
Configuraciones del sitio para October CMS.
Salida durante la instalación de October CMS.
Una vez finalizada la instalación de October CMS, verás la siguiente salida.
Por último, ejecuta el siguiente comando para migrar la base de datos.
sudo -u www-data php artisan october:migrate
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’.
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.
Introduce los datos del nuevo usuario administrador, nombre, dirección de correo electrónico y contraseña. Haz clic en Crear cuenta para confirmar.
Cuando hayas terminado, deberías obtener el panel de control de administrador de October CMS como el siguiente.
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.