Zum Inhalt

Tecnología utilizada

Para la implantación de CCM19 nos basamos en estándares que han sido probados millones de veces en todo el mundo. El software se basa en el framework PHP Symfony©, uno de los más probados y seguros que cuenta con más de 600.000 desarrolladores en todo el mundo.

Widgets frontales

Los widgets frontend se realizan utilizando Javascript puro, sin recurrir a frameworks como jquery, vue o react, para evitar en la medida de lo posible posibles incompatibilidades.

Seguridad

CCM19 hace un uso intensivo de Content Security Policy (CSP) con las siguientes restricciones habituales:

Política de seguridad de contenidos:
    default-src 'self';
    connect-src 'self' https://update.ccm19.de;
    script-src 'self' 'unsafe-inline';
    style-src 'self' 'unsafe-inline';
    img-src 'self' data:;
    frame-ancestors 'self';
    form-action 'self

Almacenamiento sin base de datos

Todos los datos se almacenan localmente en formato JSON en el área segura de CCM19. Si utiliza la versión de descarga, encontrará los datos en el directorio /var de su instalación.

El almacenamiento y procesamiento es tan eficiente que incluso varios millones de llamadas al día pueden procesarse sin problemas.

Almacenamiento con base de datos

CCM19 utiliza alternativamente MongoDB a partir de la versión 4.0. En esta variante, todos los datos se almacenan en la base de datos.

En este caso, el directorio /var se sigue utilizando con fines de almacenamiento en caché, por lo que debe seguir siendo escribible.

CCM19 requiere transacciones multi-documento. Éstas sólo están soportadas en conjuntos de réplicas y (a partir de la versión 4.2 de MongoDB) en clusters fragmentados. Por tanto, normalmente es necesario configurar un conjunto de réplica incluso con configuraciones de 1 servidor. No se requiere ninguna otra configuración especial.

Fase Beta

Antes del lanzamiento, realizamos varias pruebas para encontrar y corregir errores típicos. Además, hay una fase beta ampliada en la que muchos clientes participan y nos dan su opinión antes del lanzamiento final.

Requisitos del sistema para la versión de descarga

La versión de autoservicio / descarga de CCM19 sólo requiere

  • Linux u otro sistema operativo compatible con POSIX
  • PHP versión 7.2 o superior
  • Apache httpd 2.2+ o nginx
  • Y en el caso de utilizar la base de datos MongoDB a partir de la versión 4

Apache httpd

Recomendamos un servidor LAMP - aunque el M para MySQL no es necesario y puede ser sustituido alternativamente por MongoDB.

Los siguientes módulos son necesarios para el funcionamiento con Apache httpd:

  • mod_rewrite
  • mod_headers (opcional)
  • mod_expires (opcional)

CCM19 es totalmente compatible con el módulo de caché mod_cache. También se recomienda para optimizar el rendimiento de Apache httpd. Para saber cómo hacerlo, consulte los innumerables tutoriales disponibles en otras páginas.

nginx

Si su servidor webutiliza nginx , puede ser necesario realizar ajustes en la configuración del servidor para que CCM19 funcione satisfactoriamente después de haber realizado el primer paso de la instalación.

Primero averigüe la ruta del archivo de configuración del servidor nginx para su (sub)dominio (normalmente /etc/nginx/nginx.conf o /etc/nginx/conf.d/nombredominio.conf) y la ruta del socket para el módulo PHP FPM instalado (a menudo unix:/run/php/php7.2-fpm.sock o similar) de su proveedor o administrador del servidor.

Anote también la ruta absoluta al directorio público de la instalación de CCM19 y la ruta URL deseada a ccm19 (por ejemplo, /ccm19).

El archivo de configuración de ejemplo que aparece aquí puede encontrarse en el paquete de descarga en el directorio www/examples/ - CCM19 se instala en un subdirectorio aquí.

Ejemplo:

# Añada el contenido de este fichero a su configuración nginx dentro de un
# bloque de servidor si desea ejecutar CCM19 en un subdirectorio.
# Esto requiere el módulo PHP-FPM con al menos PHP 7.2.
#
# Debe hacer los siguientes ajustes:
# - Reemplazar "/ccm19" con la ruta URL bajo la cual CCM19 debe ser accesible,
# - sustituya "/ruta/a/ccm/público" por la ruta al directorio público en su
# instalación de CCM19 (¡sin / al final!),
# - "unix:/run/php/php7.2-fpm.sock" dependiendo de la configuración del servidor con la
# ruta del socket a su módulo PHP-FPM.

    set $ccm19_urlpath /ccm19;
    set $ccm19_realpath /ruta/a/ccm/publico;

    location ~ /ccm19(/.*) {
        root $ccm19_ruta_real;
        try_files $1 @ccm19;
    }

    location ^~ /ccm19/index.php {
        return 403;
    }

    location @ccm19 {
        root $ccm19_ruta_real;

        fastcgi_index index.php;
        fastcgi_split_path_info ^(/ccm19)(/.*)$;
        set $path_info $fastcgi_path_info;

        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        fastcgi_param SCRIPT_NAME $ccm19_urlpath/index.php;
        fastcgi_param PATH_INFO $ruta_info;

        fastcgi_param HTTP_PROXY "";
        fastcgi_param QUERY_STRING $cuerda_consulta;
        fastcgi_param REQUEST_METHOD $método_de_petición;
        fastcgi_param CONTENT_TYPE $content_type;
        fastcgi_param CONTENT_LENGTH $content_length;
        fastcgi_param REQUEST_URI $request_uri;
        fastcgi_param DOCUMENT_URI $document_uri;
        fastcgi_param DOCUMENT_ROOT $document_root;
        fastcgi_param SERVER_PROTOCOL $protocolo_servidor;
        fastcgi_param REQUEST_SCHEME $scheme;
        fastcgi_param HTTPS $https if_not_empty;
        fastcgi_param GATEWAY_INTERFACE CGI/1.1;
        fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
        fastcgi_param REMOTE_ADDR $remote_addr;
        fastcgi_param PUERTO_REMOTO $puerto_remota;
        fastcgi_param SERVER_ADDR $server_addr;
        fastcgi_param SERVER_PORT $server_port;
        fastcgi_param SERVER_NAME $nombre_servidor;

        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }