OnPremise / Autoalojado
Este documento describe los requisitos técnicos para el funcionamiento de Campus Events en un entorno autoalojado (OnPremise).
Requisitos de hardware
Para un funcionamiento estable y de alto rendimiento, el servidor debe cumplir al menos los siguientes requisitos:
- Procesador: Arquitectura multinúcleo (multi-core).
- RAM: La cantidad de RAM necesaria depende del tráfico esperado. Como base, recomendamos al menos 4 GB de RAM libre para los servicios de la aplicación.
- Espacio de almacenamiento: Al menos 50 GB de espacio de almacenamiento libre para el código del programa, los datos de la aplicación (cargas, etc.) y las copias de seguridad locales.
Sistema operativo y mantenimiento del sistema
- Responsabilidad: El mantenimiento continuo del sistema operativo, incluida la instalación de actualizaciones de seguridad para el sistema y los servicios instalados (PHP, Apache, base de datos, etc.), es responsabilidad del administrador del servidor por parte del cliente.
- Sincronización horaria: El servidor debe sincronizarse mediante NTP. La zona horaria del sistema debe establecerse en Europa/Berlín.
- Configuración regional: La configuración regional de_DE.UTF-8 debe estar instalada y disponible.
Requisitos de software
PHP y base de datos
Nuestro software se actualiza continuamente. La siguiente tabla muestra las versiones necesarias para cada lanzamiento.
| Versión de Campus Events | Versión de PHP | Módulos de PHP (extracto) | Base de datos | Redis |
|---|---|---|---|---|
| 2.35 (también conocida como 5.0) | 8.2–8.3 | ctype, gd, iconv, imap, intl, json, ldap | MariaDB 10.11 (MySQL 8.0) | Requisito |
| 2.36 (también conocido como 5.1) | 8.3 | ctype, gd, iconv, imap, intl, json, ldap | MariaDB 10.11 (MySQL 8.0) | Requisitos |
| 2.37 (también conocido como 5.2) | 8.4 | ctype, gd, iconv, intl, json, ldap, redis | MariaDB 11.4 (MySQL 8.0) | Requerido |
| 2.38 - 2.41 (también conocido como 5.3 - 5.6) | 8.4 | ctype, gd, iconv, intl, json, ldap, redis | MariaDB 11.4 (MySQL 8.0) | Requisito imprescindible |
Módulos PHP necesarios
Los siguientes módulos deben estar instalados y activados para PHP (tanto FPM como CLI):
- bcmath, ctype, curl, gd, iconv, igbinary, imagick, intl, json, ldap, mbstring, mysql (pdo_mysql), opcache, readline, redis, soap, xml, xsl, zip
- Nota sobre imap: El módulo imap es necesario hasta PHP 8.3, pero ya no es necesario a partir de PHP 8.4.
Configuración PHP
Desviándose de los valores por defecto, deben establecerse los siguientes ajustes:
- memory_limit = 512MB (o superior)
- allow_url_fopen = true
- El comando php -v en la consola debe devolver la misma versión que utiliza el servidor web. Si hay varias versiones de PHP en un servidor, la versión de la CLI debe corresponder al entorno de producción.
Cambio de versión PHP
Nuestro software está desarrollado y probado con una versión específica de PHP. Puede que sea necesario que el administrador del servidor actualice la versión de PHP para ponerlo en marcha o para una actualización. Esto será anunciado y coordinado por nosotros con suficiente antelación.
Redis
- Requisito imprescindible para Campus Events a partir de la versión 5.0 y Campus Mails a partir de la versión 4.0.
- Se admiten los tipos de conexión a Redis compatibles con Symfony.
- El servidor Redis se puede conectar, en particular, a través de:
- TCP/IP (host y puerto)
- Socket de dominio Unix
- Autenticación mediante nombre de usuario/contraseña (ACL) o contraseña
- Conexiones cifradas con TLS
- Redis Sentinel
- Redis Cluster
- La configuración concreta se realiza mediante un DSN de Redis, tal y como se indica en la documentación de Symfony.
- No es necesario un almacenamiento persistente de los datos de Redis para el funcionamiento de nuestro software.
- La instancia de Redis puede utilizarse conjuntamente con otras aplicaciones.
Más información sobre la sintaxis DSN compatible: https://symfony.com/doc/current/components/cache/adapters/redis_adapter.html#configure-the-connection
Servidor web (Apache)
El software está optimizado y probado exclusivamente para funcionar con Apache.
- Módulos: mod_rewrite debe estar activo.
- Configuración: FollowSymLinks debe estar permitido (los enlaces simbólicos fuera de la raíz web deben ser accesibles).
- Registros: Los registros de errores de Apache deben ser accesibles para el usuario de la aplicación (idealmente a través de un enlace simbólico en el directorio home).
Estructura y suministro de archivos
Para garantizar un proceso de despliegue sin problemas, se requiere la siguiente estructura (basada en Deployer):
/var/www/html/campus-events/productive/
- copias de seguridad/
- releases/ (contiene las versiones individuales del programa en subcarpetas)
- shared/ (contiene datos de versiones cruzadas, como cargas o configuraciones)
- current (enlace simbólico a la versión actualmente activa en releases/)
La raíz de documentos del servidor web debe apuntar al directorio public/ de la versión actual:
/var/www/html/campus-events/productive/current/public
Recomendamos mantener la separación en productivo y staging en la ruta, incluso si sólo hay un sistema.
Usuarios y autorizaciones
- El usuario SSH para el despliegue requiere autorización de escritura completa en el directorio del proyecto.
- Si este usuario no es idéntico al usuario del proceso del servidor web (por ejemplo, www-data), sudo debe funcionar sin contraseña para este usuario con el fin de ajustar las autorizaciones.
Cronjobs
- La aplicación requiere actualmente dos cron jobs que deben ejecutarse cada minuto.
- Lo ideal es introducirlas en /etc/crontab. Un comentario en /etc/crontab es obligatorio para diferentes ubicaciones.
Copias de seguridad y restauración
- El cliente es responsable de la copia de seguridad de los datos (base de datos y archivos).
- Recomendación: al menos una copia de seguridad diaria con un periodo de conservación de 7 días.
- En caso necesario, el cliente debe poder restaurar los datos rápidamente.
Envío por correo electrónico
Para enviar correos electrónicos (por ejemplo, confirmaciones, notificaciones del sistema) se necesitan los siguientes datos de acceso:
- Envío (SMTP): Es obligatoria una configuración SMTP en funcionamiento (host, puerto, usuario, contraseña, cifrado).
- Recepción/comprobación (IMAP): Recomendamos encarecidamente la provisión adicional de acceso IMAP (puede ser el mismo buzón que para SMTP). Esto nos permite comprobar automáticamente el envío de correo.
Demarcaciones
No asumimos ninguna responsabilidad por:
- Configuración y renovación de certificados SSL.
- Configuraciones generales de Apache o PHP fuera de esta especificación.
- Problemas de autorización a nivel de sistema de archivos o fallos de red.