Zum Inhalt

Technik

-# Tecnología utilizada

Para la implementación de CCM19, apostamos por estándares probados millones de veces en todo el mundo. La base del software es el framework PHP-Symfony©, que, con más de 600 000 desarrolladores en todo el mundo, es uno de los frameworks más probados y seguros que existen.

Widgets de frontend-

Los widgets de frontend-están implementados en JavaScript puro, sin recurrir a marcos como jQuery, Vue o React, con el fin de evitar en la medida de lo posible posibles incompatibilidades.

Seguridad

CCM19 utiliza intensivamente la Política de Seguridad de Contenidos (CSP) con las siguientes restricciones habituales:

Política de Seguridad de Contenidos (CSP)-:
    por defecto-src 'self';
    conectar-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 en formato JSON-localmente en el área segura de CCM19. Si utiliza la variante de descarga-, encontrará los datos en el directorio /var de su instalación.

El almacenamiento y el procesamiento son tan eficientes que se pueden gestionar sin problemas incluso varios millones de visitas al día.

Almacenamiento con base de datos

CCM19 utiliza, como alternativa, 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 para el almacenamiento en caché-, por lo que debe seguir siendo escribible.

CCM19 requiere transacciones multi-document-. Estas solo son compatibles en conjuntos de réplicas-y (a partir de la versión 4.2 de MongoDB-) en clústeres fragmentados. Por lo tanto, por lo general es necesario configurar un conjunto de réplicas- incluso en configuraciones de un solo servidor-- . No se requieren más ajustes especiales.

Fase beta-

Antes del lanzamiento, realizamos diversas pruebas para detectar y corregir errores típicos. Además, hay una amplia fase beta en la que participan muchos clientes y nos envían sus comentarios antes del lanzamiento definitivo.

Requisitos del sistema para la variante de descarga-

La versión Self-Service / Download-de CCM19 solo requiere

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

Apache httpd

Como servidor, recomendamos un servidor LAMP-, aunque la M de MySQL no es necesaria y puede sustituirse por MongoDB.

Para el funcionamiento con Apache httpd se necesitan los siguientes módulos:

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

CCM19 es totalmente compatible con el módulo de almacenamiento en caché de-, mod_cache. Además, se recomienda optimizar el rendimiento de Apache httpd. Para saber cómo hacerlo, le remitimos a los innumerables tutoriales que hay disponibles en otras páginas.

nginx

Si su servidor web utiliza nginx, es posible que sea necesario realizar ajustes en la configuración del servidor para que CCM19 funcione correctamente después de haber completado el primer paso de la instalación.

En primer lugar, introduzca la ruta al archivo de configuración del servidor nginx-para su dominio (sub-) (normalmente /etc/nginx/nginx.conf o /etc/nginx/conf.d/domainname.conf) y la ruta del socket-para el módulo PHP-FPM-instalado (a menudo unix:/run/php/php7.2-fpm.sock o similar) a su proveedor o al 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 (p. ej., /ccm19).

El archivo de configuración de ejemplo-que se muestra aquí se encuentra en el paquete de descarga-, en el directorio www/examples/; aquí, CCM19 se instala en un subdirectorio.

Ejemplo:

# Añada el contenido de este archivo a su configuración de nginx-dentro de un
# bloque server-si desea ejecutar CCM19 en un subdirectorio.
# Para ello, se necesita el módulo PHP-FPM-con al menos PHP 7.2.
#
# Debe realizar los siguientes ajustes:
# - "/ccm19" por la ruta URL-bajo la que debe ser accesible CCM19,
# - "/path/to/ccm/public" por la ruta al directorio público-en su
#   instalación de CCM19-(¡sin / al final!),
#   Reemplace - "unix:/run/php/php7.2-fpm.sock" por la ruta
#   del socket-a su módulo PHP-FPM-, según la configuración del servidor.

    set $ccm19_urlpath /ccm19;
    set $ccm19_realpath /path/to/ccm/public;

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

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

    location @ccm19 {
        root $ccm19_realpath;

        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 $path_info;

        fastcgi_param HTTP_PROXY    "";
        fastcgi_param QUERY_STRING  $query_string;
        fastcgi_param REQUEST_METHOD    $request_method;
        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   $server_protocol;
        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 REMOTE_PORT   $remote_port;
        fastcgi_param SERVER_ADDR   $server_addr;
        fastcgi_param SERVER_PORT   $server_port;
        fastcgi_param SERVER_NAME   $server_name;

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